~~~~~~~~高分。JAVA调用VC++写的DLL。如何使VC++的函数使用JAVA的String类型的字符串!
wendi 2007-06-19 03:18:29 JAVA调用VC++的DLL。这是JAVA代码
public class JavaCall {
static {
System.loadLibrary("changebk");
}
public native static void changeecl(String s);
public static void main(String[] args) {
JavaCall jc = new JavaCall();
String strDesktop="E:\\coco.gif";
jc.changeecl(strDesktop);
System.out.println("调用结束");
}
}
这是VC++代码。他的作用是设置桌面背景为e:\\ibmee.gif
NIEXPORT void JNICALL Java_JavaCall_changeecl (JNIEnv *env, jclass cls,jstring str)
{
IActiveDesktop *pAD;
COMPONENT comp;
CoInitialize(NULL);
CoCreateInstance( CLSID_ActiveDesktop, NULL, CLSCTX_INPROC_SERVER,
IID_IActiveDesktop, (void**)&pAD );
pAD->SetWallpaper(L"e:\\ibmee.gif",0);
pAD->ApplyChanges(AD_APPLY_ALL);
pAD->Release();
CoUninitialize();
}
现在我想根据JAVA传过来的String 类型的参数strDesktop来灵活设置桌面,而不是在VC++中象 pAD->SetWallpaper(L"e:\\ibmee.gif",0); 这样写死。应该怎么修改???