H
Homer
Can somebody help me please how I can call my callback function in C++:
Java:
class DirectoryWatcher {
public native void watchDirectory();
public native void callBack(String status);
static {
System.loadLibrary("watcher");
}
public void callback(String status) {
System.out.println("Honey, I am home...");
}
public static void main(String[] args) {
DirectoryWatcher dw = new DirectoryWatcher();
dw.watchDirectory();
}
}
C++:
__gc class Watcher
{
public:
void Go(String * s){
.......................
callJavaCallBack();
}
void callJavaCallBack() {
HERE IS THE MISSING PART (WHAT SHOULD I DO HERE? Where
should I get env, obj)
}
};
JNIEXPORT void JNICALL
Java_DirectoryWatcher_callbback(JNIEnv *env, jobject obj, jint depth)
{
(*env)->CallVoidMethod(env, obj,
instanceMethodCall_callback);
}
JNIEXPORT void JNICALL
Java_DirectoryWatcher_watchDirectory(JNIEnv *env, jobject obj)
{
instanceMethodCall_callback = (*env)->GetMethodID(env, cls,
"callback", "()V");
Watcher * w=new Watcher();
w->Go("c:\\test");
return;
}
Java:
class DirectoryWatcher {
public native void watchDirectory();
public native void callBack(String status);
static {
System.loadLibrary("watcher");
}
public void callback(String status) {
System.out.println("Honey, I am home...");
}
public static void main(String[] args) {
DirectoryWatcher dw = new DirectoryWatcher();
dw.watchDirectory();
}
}
C++:
__gc class Watcher
{
public:
void Go(String * s){
.......................
callJavaCallBack();
}
void callJavaCallBack() {
HERE IS THE MISSING PART (WHAT SHOULD I DO HERE? Where
should I get env, obj)
}
};
JNIEXPORT void JNICALL
Java_DirectoryWatcher_callbback(JNIEnv *env, jobject obj, jint depth)
{
(*env)->CallVoidMethod(env, obj,
instanceMethodCall_callback);
}
JNIEXPORT void JNICALL
Java_DirectoryWatcher_watchDirectory(JNIEnv *env, jobject obj)
{
instanceMethodCall_callback = (*env)->GetMethodID(env, cls,
"callback", "()V");
Watcher * w=new Watcher();
w->Go("c:\\test");
return;
}