• 全部
  • C#综合技术
  • C#互联网桌面应用
  • AppLauncher
  • WinForm&WPF
  • C#开发新技术
  • 问答

如何调用C/CPP的DLL? 导出函数是一个取地址的参数。并且是一个结构。

boyyao 2021-03-04 01:18:38
这里是一个c调使用这个dll中方法的例子。现在想要转到C#中调用。。有几点不明白想请教

int main() {
uint8_t seed[32] = {0}; //这里的{0} 是传入的参数麽??意思是传入的第一个参数?

//这里的ZksPrivateKey等 是一个结构。如下:
/*
应该如何翻译成C#?
typedef struct ZksPrivateKey {
uint8_t data[PRIVATE_KEY_LEN];
} ZksPrivateKey;
*/

ZksPrivateKey private_key = {0}; //同上?
ZksPackedPublicKey publicKey = {0};//同上?
ZksPubkeyHash pubkeyHash = {0};//同上?

zks_crypto_init();
//下面的方法都是有& 取地址的 请问应该如何再c#中导入这个方法?并且调用?
zks_crypto_private_key_from_seed(seed, 32, &private_key);
zks_crypto_private_key_to_public_key(&private_key, &publicKey);
zks_crypto_public_key_to_pubkey_hash(&publicKey, &pubkeyHash);



uint8_t message[] = "hello";
ZksSignature signature = {0};
zks_crypto_sign_musig(&private_key, message, 5, &signature);


return 0;
}
...全文
77 点赞 收藏 1
写回复
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
much0726 03-04
int main() { uint8_t seed[32] = {0}; //这个是对这个数组32字符赋初值0 //这里的ZksPrivateKey等 是一个结构。如下: /* 应该如何翻译成C#? //改成类就好了,一个String类型 typedef struct ZksPrivateKey { uint8_t data[PRIVATE_KEY_LEN]; } ZksPrivateKey; */ //是的,都改成string类型的类就行 ZksPrivateKey private_key = {0}; //同上? ZksPackedPublicKey publicKey = {0};//同上? ZksPubkeyHash pubkeyHash = {0};//同上? zks_crypto_init(); //下面的方法都是有& 取地址的 请问应该如何再c#中导入这个方法?并且调用? //主要功能就是传递对象的密钥,密钥使用string 传输来替换即可 zks_crypto_private_key_from_seed(seed, 32, &private_key); zks_crypto_private_key_to_public_key(&private_key, &publicKey); zks_crypto_public_key_to_pubkey_hash(&publicKey, &pubkeyHash); uint8_t message[] = "hello"; ZksSignature signature = {0}; zks_crypto_sign_musig(&private_key, message, 5, &signature); return 0; }
回复
相关推荐
发帖
C#
创建于2007-09-28

10.5w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2021-03-04 01:18
社区公告

让您成为最强悍的C#开发者