关于gcc入口点函数的问题

wwsyxy 2011-07-26 09:54:00
先看代码:
mylib.cpp :

#include <windows.h>

extern "C" __declspec(dllexport) int __stdcall add(int a,int b)
{
return a+b;
}

BOOL WINAPI DllMain(HINSTANCE hModule,DWORD dwReason,LPVOID lpvReserved)
{
MessageBox(NULL,"DllMain",NULL,0);
return TRUE;
}


test.cpp :

#include <stdio.h>
extern "C" __declspec(dllimport) __stdcall int add(int a,int b);
int main()
{
printf("a+b=%d\n",add(12,123));
return 0;
}



生成文件:
mylib.dll gcc -mdll mylib.cpp -o mylib.dll
test.exe gcc test.cpp -o test.exe -L. -lmylib


我的问题是:
执行 test.exe 时 mylib.dll 中的DllMain 函数怎么没被调用呢?
谁能帮帮忙 谢谢!
...全文
191 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
wwsyxy 2011-07-27
  • 打赏
  • 举报
回复
哥 你太帅了
hongwenjun 2011-07-26
  • 打赏
  • 举报
回复
#include <windows.h>

extern "C" {
__declspec( dllexport ) int __stdcall add( int a, int b )
{
return a + b;
}

BOOL WINAPI DllMain( HINSTANCE hModule, DWORD dwReason, LPVOID lpvReserved )
{
MessageBox( NULL, "DllMain", NULL, 0 );
return TRUE;
}
}

24,854

社区成员

发帖
与我相关
我的任务
社区描述
C/C++ 工具平台和程序库
社区管理员
  • 工具平台和程序库社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧