在使用Go平台调用VS2010写的动态链接库DLL过程中,系统报出了''Error 193'错误。对比错误代码就是我们日常见到的 "不是有效Win32应用程序"。但在使用VS2010写的C++程序调用时候未提示错误。
看了下网上的解答,总结一下,就是运行环境错误。
后来发现在VS环境下,编译的配置环境是32位,而系统运行的是64位。在Windows平台开发exe应用程序时同样也是在32位环境,32位的EXE调用32位的DLL,因此不会报出该错误。但在Go平台编译使用的是64位编译环境,调用32位的dll即出现了该错误。
解决思路:
(1)检查所使用的工作环境与应用程序是否兼容,在调用DLL,LIB中确保该函数与应用程序平台相同
(2)在编写Win7程序需要兼容winxp时候需要特别注意,外部依赖项和平台工具集是否支持低版本(高版本)操作系统。
参考文章:
http://blog.youkuaiyun.com/shuaihj/article/details/17096903
https://msdn.microsoft.com/zh-SG/library/jj851139.aspx
在Go平台调用VS2010编译的32位DLL时遇到'Error 193'错误,表现为'不是有效Win32应用程序'。问题在于64位环境调用了32位DLL。解决方案包括:检查应用程序与DLL的平台兼容性,确保两者一致;在编写跨平台程序时,注意外部依赖和平台工具集的兼容性。参考了优快云和MSDN的相关文章。
11万+

被折叠的 条评论
为什么被折叠?



