我的问题是lArgs应该如何进行字节格式化?我无法在args是不同对象列表的任何地方找到任何示例。
我试过让lArgs成为一个对象数组,但它不起作用,我想因为一个对象数组不是字节数组和两个字符串。
请帮助谢谢。
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
mv /usr/local/var/postgres /usr/local/var/postgres92
brew update
brew upgrade postgresql
initdb /usr/local/var/postgres -E utf8
pg_upgrade -b /usr/local/Cellar/postgresql/9.2.3/bin -B /usr/local/Cellar/postgresql/9.3.5_1/bin -d /usr/local/var/postgres92 -D /usr/local/var/postgres
cp /usr/local/Cellar/postgresql/9.3.5_1/homebrew.mxcl.postgresql.plist ~/Library/LaunchAgents/
pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start
rm -rf /usr/local/var/postgres92
以下不起作用......
szMethod db "externalCallIn",0
szMethodArgs db "([BLjava/lang/String;Ljava/lang/String;)V",0
invoke JNI_GetStaticMethodID,dJNIenv,lClass,ADDR szMethod,ADDR szMethodArgs
mov lMethod,eax
invoke JNI_CallStaticVoidMethod,dJNIenv,lClass,lMethod,lArgs
如果我只有一个参数,它可以正常工作。我找不到任何显示如何有多个不同参数的例子。非常感谢一个例子。
这是java类......
LOCAL lClass:DWORD
LOCAL lMethod:DWORD
LOCAL lByteArray:DWORD
LOCAL lString1:DWORD
LOCAL lString2:DWORD
invoke JNI_CallStaticVoidMethod,dJNIenv,lClass,lMethod,lByteArr,lStr1,lStr2
JNI_CallStaticVoidMethod PROTO :DWORD,:DWORD,:DWORD,:DWORD,:DWORD,:DWORD
JNI_CallStaticVoidMethod PROC inJNIenv:DWORD, inClass:DWORD, inMethod:DWORD, inByteArr:DWORD, inStr1:DWORD, inStr2:DWORD
push inStr2
push inStr1
push inByteArr
push inMethod
push inClass
push inJNIenv
mov eax,inJNIenv
mov eax,[eax]
call DWORD PTR [eax].JNIenv.CallStaticVoidMethod
ret
JNI_CallStaticVoidMethod ENDP
答案 0 :(得分:0)
我发布的代码没有任何问题。 在我将字节数组放在一起的过程代码中,我没有在eax中返回结构指针。这是一个愚蠢的错误。 一旦我纠正了这一切,一切都按预期工作。