好吧,所以我的简单dll hellow world函数
#include "stdafx.h"
extern "C" void HelloWorld()
{
MessageBox( NULL, TEXT("Hello World"),
TEXT("In a DLL"), MB_OK);
}
我的简单Hello World App没有被调用:
case IDM_ABOUT:
hinstDLL = LoadLibrary(L"phantasyhook.dll");
if (hinstDLL != NULL)
{
HelloWorld = (FARPROC) GetProcAddress(hinstDLL, "HelloWorld");
if (HelloWorld != NULL)
HelloWorld();
else
MessageBox(NULL, L"is null", L"dll Error", MB_OK);
FreeLibrary(hinstDLL);
}
break;
它打开了" IS NULL"消息框,认为它应该打开Hello World One。我在做什么错?
您需要标记一个函数应由dll导出以使其他代码能够加载它。您可以通过添加__declSpec(dllexport)或模块定义文件来完成。
extern "C" __declspec(dllexport) void HelloWorld()