我想要使用我开发的专有库(DLL)升级设备,该库在MFC应用程序中运行良好。但是问题是,我们必须使其在浏览器中工作。我的想法是使用小程序,然后调用本地DLL以使其工作。我的测试Java应用程序完全正常,但是使用小程序时就无法正常工作了。我已经将问题缩小到32位VS 64位JVM上。让我来解释一下: 我正在使用的Eclipse IDE使用64位JVM,因为我使用的是Windows 7 64位。然而,浏览器使用32位JVM,这不起作用。两者之间的区别在于传递给我的函数的参数。下面是DLL公开的一些函数的示例:
我的Java测试GUI将IP地址设置为本地库中的"192.168.x.x",端口设置为50005。在64位系统上一切正常,如我之前所说。但在32位系统上,如果我在C中打印serverAddress和serverPort,将显示:
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将IP地址设置为本地库中的"192.168.x.x",端口设置为50005。在64位系统上一切正常,如我之前所说。但在32位系统上,如果我在C中打印serverAddress和serverPort,将显示:
(null):62384
可以看到,甚至端口也没有正确传递。
我已经这样做了一个星期了,现在愁得快没头发了......请帮帮我!