我的程序是在 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 到底有什么区别?!(但别说一些 废话)

解决方案 »

  1.   

    你有些变量没有初始化,请仔细检查。debug可以通过但release不能的原因,最常见的就是这个。
      

  2.   

    回复人: iCharlene(我爱阿sa) ( ) 信誉:100  你有没有仔细看我贴的帖子我已经 确定是LoadLibary的问题,返回的是0(在汇编可以看出 )004010EC   int         3         //这个对应于 _asm int 3 ,我就不说了
    004010ED   test        eax,eax   
    004010EF   jne         004010F9  //@1
    004010F1   push        1                         //返回的是1
    004010F3   call        dword ptr ds:[403284h]    //这个就是exit 函数了
    由于寄存器 eax =0 所以@1 语句没有执行,也就是没有跳转
    高手呢? 不会,我有问题的时候,高手就不显身了吗?
      

  3.   

    真是不好意思,原来sourcesafe 有人改了工程属性,(debug没有改)
    真是对不起大家了,
    给分!