我的程序是在 vc中加载 client\jvm.dll的然后跳用上面java的方法在vc6中Debug版本没有问题,编译可以,运行调试都正确。
可是release版本时 编译可以,运行时失败
失败处:
如下
lstrcat(jvmDLLPath,_T("\\jre\\bin\\client\\jvm.dll"));
HMODULE hMoudle = LoadLibrary(jvmDLLPath);
__asm int 3;
if(!hMoudle)
{
exit(1);
}
__asm int 3;在release 运行 ,第一个单步中断执行了 (int 3) 但是第二个没有,所以断定 loadLibrary()错误,有哪位大虾们遇到过这样问题?(怀疑与 jdk有关,以前我的release 也是好的,后来重新安装了JDK ,就变成现在这样了).Debug 与Release 到底有什么区别?!(但别说一些 废话)
可是release版本时 编译可以,运行时失败
失败处:
如下
lstrcat(jvmDLLPath,_T("\\jre\\bin\\client\\jvm.dll"));
HMODULE hMoudle = LoadLibrary(jvmDLLPath);
__asm int 3;
if(!hMoudle)
{
exit(1);
}
__asm int 3;在release 运行 ,第一个单步中断执行了 (int 3) 但是第二个没有,所以断定 loadLibrary()错误,有哪位大虾们遇到过这样问题?(怀疑与 jdk有关,以前我的release 也是好的,后来重新安装了JDK ,就变成现在这样了).Debug 与Release 到底有什么区别?!(但别说一些 废话)
004010ED test eax,eax
004010EF jne 004010F9 //@1
004010F1 push 1 //返回的是1
004010F3 call dword ptr ds:[403284h] //这个就是exit 函数了
由于寄存器 eax =0 所以@1 语句没有执行,也就是没有跳转
高手呢? 不会,我有问题的时候,高手就不显身了吗?
真是对不起大家了,
给分!