好吧,所以我的简单DLL Hellow World功能
#include "stdafx.h"
extern "C" void HelloWorld()
{
MessageBox( NULL, TEXT("Hello World"),
TEXT("In a DLL"), MB_OK);
}
我的简单hello world应用程序没有调用它:
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;
打开"为空" MessageBox,认为它应该打开Hello World。我做错了什么?
答案 0 :(得分:4)
您需要标记一个函数应该由DLL导出,以便其他代码能够加载它。您可以添加__declspec(dllexport)或module definition file。
extern "C" __declspec(dllexport) void HelloWorld()