Linux下.so-->Win32下dll中的一个平台差异
来源:互联网 发布:阿里云代理ip 编辑:程序博客网 时间:2024/05/16 11:49
最近在Linux下做了个动态库,调用了ACE_SSL_SOCK_*的一些函数,很简单。
移到win32的时候出了一个问题:测试工程里调用动态库函数没问题(调试可以进到动态库函数内部),但是动态库函数内调用ACE_SOCK_Connector对象connect的时候总是失败(把这个connect方法放到动态库外面调用可以成功)。
原因:DLL对windows来说, 是一个单一实例(HInstance), 许多内存上的预备,需要单独处理,比如,你是不是确保在DLL初始化的函数里,调用ACE_Init了呢? (它实质是要调用win32的 SockStart)
解决方法:动态库添加一对接口:Init()和Finit(),分别调用ACE::init()和ACE::finit(),分别在调用dll开始和结束时调用这两个函数即可。
移到win32的时候出了一个问题:测试工程里调用动态库函数没问题(调试可以进到动态库函数内部),但是动态库函数内调用ACE_SOCK_Connector对象connect的时候总是失败(把这个connect方法放到动态库外面调用可以成功)。
原因:DLL对windows来说, 是一个单一实例(HInstance), 许多内存上的预备,需要单独处理,比如,你是不是确保在DLL初始化的函数里,调用ACE_Init了呢? (它实质是要调用win32的 SockStart)
解决方法:动态库添加一对接口:Init()和Finit(),分别调用ACE::init()和ACE::finit(),分别在调用dll开始和结束时调用这两个函数即可。
- Linux下.so-->Win32下dll中的一个平台差异
- 同时能在Win32和Linux下编译的动态链接库(dll、so)导出类示例
- Win32下DLL编程
- 动态链接库在 Windows(dll) 以及 Linux(so)下编程中的应用
- VS2005下DLL配置差异,设备版和Win32版比较
- Windows下Console和Win32程序差异
- Linux下的动态链接库(DLL) - so文件
- 关于linux平台下用gdb调试so动态库
- Win32平台下WinPcap编程
- Linux下SO_REUSEADDR于TCP/IPv1中的差异
- Linux下打差异包
- windows下的dll文件和linux下的.so文件
- linux下的.a和.so,对比windows下的lib和dll
- linux下的.a和.so,对比windows下的lib和dll
- Win32环境下dll编程原理(转载)
- Win32环境下dll编程原理
- Win32下动态链接库(DLL)编程
- Win32环境下dll编程原理(转载)
- 喝点酒吧
- [英语阅读]维生素补充剂让你更健康吗
- 关于jar打包双击运行的问题
- 你知道 ASP.NET配置文件machine.config ?
- ASP.NET AJAX(Atlas)和Anthem.NET——管中窥豹般小小比较
- Linux下.so-->Win32下dll中的一个平台差异
- chickens come home to roost恶有恶报
- jsp中的标签以及注释的写法
- ping与网络检测
- 使用Spring、Hibernate、Struts的一些错误总结
- 心流感
- C++与C#混合生成.NET程序
- 把Ubuntu打造成MAC
- 软件行业正面临一场新的变革——SaaS软件