2

C API を使用して、ユーザー ID ファイルから公開鍵を取得できると考えました。関数を見つけて、ほとんど理解していると思います。しかし、私が望むものを指すアドレスからデータを読み取る方法がわかりません。

Declare Function W32_OSLockObject Lib "nnotes.dll" Alias "OSLockObject" (Byval handle As  Long) As Long
Declare Function W32_OSUnlockObject Lib "nnotes.dll" Alias "OSUnlockObject" (Byval handle As Long) As Long

Declare Function SECKFMGetUserName Lib "nnotes" (Byval strReturnUserName As String) As Integer
Declare Function SECKFMGetPublicKey Lib "nnotes.dll" (Byval strUserName As String, Byval intFunction As Integer, Byval intFlags As Integer, handle As Long) As Integer


lret = SECKFMGetUserName(hUserName)
lret = SECKFMGetPublicKey(hUserName, 0, 0, hPublicKey)

aPublicKey = W32_OSLockObject(hPublicKey)

そして今何?座っているアヒルは、住所で私がそれを受け取るのを待っています[aPublicKey]。そのアドレスから文字列を取得する方法をいくつか試しましたが、何度も失敗しました。

簡単なはずですが、従うべき手がかりがありません。

C API について購入すべき本があることは知っていますが、既知のアドレスから文字列を取得するには本が必要ですか?

私の C API ヒーローになりたいですか?

4

1 に答える 1

1

「LotusScript to C API Programming Guide」を参照していると仮定すると、私はその本を持っています。強くお勧めします。メモリ処理に関する素晴らしい章があります。

次のように、OSLockObject を宣言して LMBCS 文字列を返すようにしてください。

 Declare Function W32_OSLockObjectStr Lib "nnotes.dll" Alias "OSLockObject" (Byval handle As  Long) As LMBCS String

SECKFMGetPublicKey が null で終わる文字列を含むバッファを返す場合、動作するはずです。そうでない場合は、この本でカバーされている他のテクニックがあります。

于 2012-10-05T03:09:33.623 に答える