我想使用我开发的专有库 (DLL) 升级设备。该库使用 MFC 应用程序运行良好。然而,这里的转折是我们必须在浏览器中进行这项工作。
我的想法是使用一个小程序,然后调用本机 DLL 来完成这项工作。我的测试 Java 应用程序一切正常。然后我尝试使用小程序,然后没有任何效果。
我已将问题范围缩小到 32 位 VS 64 位 JVM。让我解释一下:我使用的 Eclipse IDE 使用64 位 JVM,因为我在Windows 7 64 位上。但是,浏览器使用32 位 JVM,这不起作用。
两者的区别在于传递给我的函数的参数。以下是 DLL 公开的函数的一些示例:
bool UPGRADELIB_API Connect( const char* serverAddress, unsigned short serverPort );
bool UPGRADELIB_API Upgrade( const char* pFilePath );
在Java中分别匹配:
boolean Icon_ConnectClientNode( String serverAddress, int serverPort );
boolean Icon_Upgrade( String pFilePath );
我的 Java 测试 GUI 传递给这个本地库“192.168.xx”作为 IP 地址和50005作为端口。正如我之前所说,在64bit中,一切都很好。在32bit中,如果我在 C 中打印 serverAddress 和 serverPort ,它会显示
(空):62384
如您所见,即使是端口也没有正确传递。
我已经做了一个星期了,我从头上拉了很多头发,我很快就不会了......请帮帮我!