基于winpcap静态链接库开发新的动态链接库时出现问题

ljx_csdn 2018-04-13 09:59:43
在VS2010中基于WinPcap的静态链接库来开发新的动态链接库时出现,咨询一下是不是不能在静态库的基础上开发新的动态库?麻烦各位指点一下,感激不尽!

静态库的引入和使用应该是没问题的,之前用winpcap的静态链接库开发过exe,是没有出现问题的。

我的dll是项目是建立的win32的,建立过程是new一个win32 project,起一个项目名后点确定,然后再Application Settings中把Application Type改为DLL,把Additional Options改为Export Symbols,然后点完成创建。再把winpcap开发包的Include和Lib文件夹放到我的项目里,在项目属性里指明了两个文件夹的位置,然后在代码中引入了头文件和lib库文件,并使用了#include <remote-ext.h>。我把我要导出的函数都是用__declspec(dllexport)修饰的,而且也加了extern “C”。

在编译生成dll时没有什么问题,但是在我使用生成的这个dll时出现了问题,我是使用LoadLibrary去动态引入这个dll的,但是问题就出在这儿了,卡在LoadLibrary函数了,没有返回。不知道问题是什么,我把生成dll代码中用到winpcap的部分屏蔽重新生成试了一下,是可以被引入的,LoadLibrary成功返回了。

是在不知道问题出在哪儿,麻烦各位指点!

要是使用winpcap动态库可以的话,麻烦大概说一下winpcap的动态库应该使用哪一个,里面封装的函数和静态库的一样吗?谢谢了!
...全文
651 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
paschen 2018-04-13
  • 打赏
  • 举报
回复
有可能卡在dllmain函数中,LoadLibrary会调用DLLMAIN完成初始
ljx_csdn 2018-04-13
  • 打赏
  • 举报
回复
引用 1 楼 jiht594 的回复:
没有返回是什么意思?卡再那行代码了,不能往下走?那不就是里面死循环了? 如果是返回NULL、可以用GetLastError看一下错误码。 另外把所有相关二进制文件都放到exe目录。代码所有目录改成绝对路径。避免路径问题。
你好,我引入生成的dll是动态引入的,方法如下: HINSTANCE hdll; dll = LoadLibrary(L"dll名字"); 已经包含了windows.h头文件,而且dll是放在这个项目的Debu文件夹下的(也就是跟exe在同一目录),打断点调试发现,程序卡在dll = LoadLibrary(L"dll名字");这一句,不向下执行了,和死循环的现象一样。所以不清楚问题是什么。
jiht594 2018-04-13
  • 打赏
  • 举报
回复
没有返回是什么意思?卡再那行代码了,不能往下走?那不就是里面死循环了? 如果是返回NULL、可以用GetLastError看一下错误码。 另外把所有相关二进制文件都放到exe目录。代码所有目录改成绝对路径。避免路径问题。
ljx_csdn 2018-04-13
  • 打赏
  • 举报
回复
引用 3 楼 paschen 的回复:
有可能卡在dllmain函数中,LoadLibrary会调用DLLMAIN完成初始
你好,dllMain.cpp的内容是: #include "stdafx.h" #include "stdio.h" BOOL APIENTRY DllMain(HANDLE hModule, DWORD ul_reason_for_call, LPVOID lpReserved) {  switch (ul_reason_for_call)  {   case DLL_PROCESS_ATTACH:   case DLL_THREAD_ATTACH:   case DLL_THREAD_DETACH:   case DLL_PROCESS_DETACH:    break;  }  return TRUE; } 不知道dllMain这样是有问题的吗? ps:这是我用vs2010生成dll时的dllMain函数,我尝试用vs2005来生成dll时,发现没有dllMain函数,但是一样会卡在LoadLibrary

24,854

社区成员

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

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