关于java虚拟机在c++中的使用解决思路

关于java虚拟机在c++中的使用
我写了一个c++的程序,他在执行过程中使用LoadLibrary方法加载一个DLL。在vc下启动这个程序,加载一切正常。我在java中编写一段代码,有java启动c++的程序,加载DLL是有了问题。在加载c:\WINDOWS\system32\secur32.dll这个DLL时,既不出错,也不返回。但是如果关掉java虚拟机,c++就继续执行,正常加载。各位谁知道是什么原因?万分紧急!

------解决方案--------------------
这个确实比较厉害了。。。
------解决方案--------------------
1.关掉jvm和由他启动的c++程序的父子关系,在试一下

在c++里边是这样,不知道在java里边怎么做

PROCESS_INFORMATION pi;
STARTUPINFO si;
DWORD dwExitCode;

BOOL fSuccess = CreateProcess(NULL, "c:\\windows\\system32\\cmd.exe -c xxx.bat ",NULL,NULL,FALSE,0,NULL,NULL,&si,&pi);

if (fSuccess){
CloseHandle(pi.Thread);
CloseHandle(pi.hProcess);
}
------解决方案--------------------
学习
------解决方案--------------------
怀疑是虚拟机有些环境变量和正常执行exe有差异。

如果dll在java中能被load进来的话,先在dll中加些调试信息,确定阻碍dll执行的位置。
如果dll不能load的话,那就是path问题。
------解决方案--------------------
楼上的,那是个系统的dll吧,怎么加上调试信息

已经说得很明白了,代码在那里摆着呢,你去看看书吧:)