我想我可以使用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英雄吗?
发布于 2012-10-05 11:09:34
假设你指的是"LotusScript to have编程指南“,我有这本书。我强烈推荐它。有一个关于内存处理的很好的章节。
尝试声明OSLockObject以返回LMBCS字符串,如下所示:
Declare Function W32_OSLockObjectStr Lib "nnotes.dll" Alias "OSLockObject" (Byval handle As Long) As LMBCS String如果SECKFMGetPublicKey返回一个包含以null结尾的字符串的缓冲区,它应该可以工作。如果没有,本书中还介绍了其他一些技术。
https://stackoverflow.com/questions/12722513
复制相似问题