C++ 程序中如何操作JAVA窗口组件?
最近做一个视频应用,使用的天敏VC4000 视频采集卡,厂商提供SDK开发包只能针对VB,C# ,VC 的开发,我使用JAVA通过JNI的方式调用C++的DLL本地方法,但是SDK提供的函数中需要传一个窗口句柄,也就是视频显示的窗口的句柄,JAVA 中的窗口组件只能先通过JNI方式获取窗口句柄(是一个long值),然后再将窗口句柄作为参数传给本地方法。这样做的目的是想将视频显示到JAVA窗口中,但测试的时候没有显示,请问,C++ 中能否这样操作JAVA窗口组件呢?
//首先获取父窗口的句柄
// initSDK
long frameHwnd = JNIWindowUtilProxy.getWindowHWND(jawtpath,parent);
System.out.println("Frame 窗口句柄是:"+frameHwnd);
//初始化采集卡驱动
boolean ret = initSAA7134(frameHwnd);
// if(!ret){
// //JDialog.
// System.out.println("初始化VC4000采集卡驱动失败");
// return;
// }
//获取视频设备的个数
int devNum = getDeviceNum();
System.out.println("当前设备数:"+devNum);
int hwnd = JNIWindowUtilProxy.getWindowHWND(jawtpath, parent);
//打开视频设备预览
if(!start(hwnd,0)){
throw new RuntimeException(" start captureDevice faild!");
}
sailkob
12 years, 2 months ago