我正在尝试使用Lotus Notes中的NativeCall dll来调用它。但是,此代码不会运行并引发
UnsupportedOperationException on NativeCall.init()我需要把它放在别的地方吗?谢谢。
import com.eaio.*;
import com.eaio.nativecall.IntCall;
import com.eaio.nativecall.NativeCall;
import java.io.*;
class WindowsUtils {
public static final int SM_REMOTESESSION = 4096; // remote session
//Session.getPlatform() = Windows/16 or /32
private WindowsUtils() {}
public static boolean isRemote() throws SecurityException, UnsatisfiedLinkError,
UnsupportedOperationException, IOException
{
NativeCall.init();
ntCall ic = null;
try {
ic = new IntCall("user32", "GetSystemMetrics");
int rc = ic.executeCall(new Integer(SM_REMOTESESSION));
System.out.println(rc);
return true;
//return (rc gt; 0);
}
finally {
if (ic != null) ic.destroy();
}
}
public static void main(String ... args) throws Exception {
System.out.println(WindowsUtils.isRemote());
}
}发布于 2015-06-27 22:21:04
根据注释中提供的信息,问题是无法加载NativeCall.dll,因为它是为Win64编译的,而Notes客户端代码是Win32。即使在SysWOW64仿真下运行,Win32代码也不能加载64位动态链接库。
https://stackoverflow.com/questions/31076588
复制相似问题