小黄人的爸爸大黄人 2017-08-27 16:46 采纳率: 40%
浏览 1786

关于DLL函数无法导出的问题

我的DLL内部函数如下:
__declspec(dllexport) EXTERN_C LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
……
}

在另一个文件中的DLL载入及函数导入如下:
……
hinstDLL = LoadLibrary(TEXT("MOUSE_MOVE_DLL.dll"));
hkprcMouse = (HOOKPROC)GetProcAddress(hinstDLL, "MouseProc");

    hhookMouse = SetWindowsHookEx(WH_MOUSE_LL, hkprcMouse, hinstDLL, 0);

……
在调试过程中,执行LoadLibrary后hinstDLL是正确的,可是函数GetProcAddress始终返回NULL,用dependency walker看生成的exe文件,里面根本没有从我的DLL里面导出的函数。。。

  • 写回答

1条回答

  • 关注

    已经解决啦各位!把EXTERN_C放在函数的最前面,在调用程序中使用“_MouseProc@12”就能识别啦。

    评论

报告相同问题?

悬赏问题

  • ¥15 sqlite 附加(attach database)加密数据库时,返回26是什么原因呢?
  • ¥88 找成都本地经验丰富懂小程序开发的技术大咖
  • ¥15 如何处理复杂数据表格的除法运算
  • ¥15 如何用stc8h1k08的片子做485数据透传的功能?(关键词-串口)
  • ¥15 有兄弟姐妹会用word插图功能制作类似citespace的图片吗?
  • ¥200 uniapp长期运行卡死问题解决
  • ¥15 latex怎么处理论文引理引用参考文献
  • ¥15 请教:如何用postman调用本地虚拟机区块链接上的合约?
  • ¥15 为什么使用javacv转封装rtsp为rtmp时出现如下问题:[h264 @ 000000004faf7500]no frame?
  • ¥15 乘性高斯噪声在深度学习网络中的应用