0

我在自签名 Java 小程序上使用 System.load(),旧版本的 dll 加载正常,但我的新版本(即使 dll 构建良好)不加载,不抛出任何异常,只是停止代码在它的轨道上。

关于可能导致这种情况的任何想法?

这是部署 jar 文件的 html:

<embed  id = "IB" 
type = "application/x-java-applet" 
width = "{$width}" 
height = "{$height}" 
code = "{$code}"
archive = "{$archive}"
username = "{$username}"
password = "{$password}"
account = "{$customer_ref}"
debug = "{$debug}"
baseweburl = "{$baseweburl}"
webserviceurl = "{$webserviceurl}"
/>

我添加用于创建 Dll 文件的 C++:

标头(javah 创建)

/*
 * Class:     i_jni_B
 * Method:    DeviceOnline
 * Signature: ()Z
 */
JNIEXPORT jboolean JNICALL Java_i_jni_B_DeviceOnline
  (JNIEnv *, jobject);

cp文件

JNIEXPORT jboolean JNICALL Java_i_jni_B_DeviceOnline
  (JNIEnv *env, jobject)
{
    try
    {
        CDevice* clsDevice = new CDevice();
        clsDevice->Initialize();
        clsDevice->Release();
        return true;
    }
    catch (System::Exception^ ex)
    {
        return false;
    }
}
4

1 回答 1

0

你永远不会相信这个解决方案:我的 Visual Studio 处于调试模式。当设置为发布模式时,一切正常!也许这可以节省一些时间......

于 2013-05-15T07:59:47.777 回答