c++ - 将 Arduino 库转换为 Visual C++ dll
问题描述
嘿,我正在尽力修复下面的这些错误。C++ 代码来自一个 Arduino 库,我想将其转换为 Visual C++ dll,以便在我的一个 C# 应用程序中使用。
这些是有错误的区域:
void AES::do_aes_encrypt(BYTE *plain,int size_p,BYTE *cipher,BYTE *key, int bits, BYTE ivl [N_BLOCK]){
calc_size_n_pad(size_p);
BYTE plain_p[get_size()];
padPlaintext(plain,plain_p);
int blocks = get_size() / N_BLOCK;
set_key(key, bits) ;
cbc_encrypt(plain_p, cipher, blocks, ivl);
}
“ BYTE plain_p[get_size()]; ”有“ 'this' cannot be used in a constant expression ”的错误。
string AES::letsDecrypt(BYTE *key, string msg, AES aes) {
char data_decoded[200];
char iv_decoded[200];
char temp[200];
BYTE out[200];
aes.set_key(key, sizeof(key));
msg.toCharArray(temp, 200);
int b64len = base64_decode(data_decoded, temp, msg.length());
string(iv_Encoded).toCharArray(temp, 200);
base64_decode(iv_decoded, temp, string(iv_Encoded).length());
aes.do_aes_decrypt((BYTE *)data_decoded, b64len, out, key, 128, (BYTE *)iv_decoded);
char message[msg.length()];
char* msgBase64 = (char *)out;
base64_decode(message, (char *)out, msg.length());
return std::string(message);
}
“ msg.toCharArray(temp, 200); ”有“ class "std::basic_string, std::allocator>" has no member "toCharArray"的错误。
“ char message[msg.length()]; ”上面相同代码的另一个错误有“表达式必须有一个常量值”的错误。
帮助会很棒,因为我是 C++ 方面的新手!
解决方案
推荐阅读
- javascript - 检查 HTML 元素是否具有特定的孙元素
- rss - 如何摆脱 Hugo 模板中的 RSS 链接?
- python - python请求问题:cloudflare错误消息“启用cookies”
- python - 如何停止循环中相同元素的重复
- c++ - 如何在 return 语句后打印一行?
- android - 升级 Android Studio 后,RelativeLayoutButton 不起作用
- firebase - 是否可以从 firebase 获取 i18n 翻译源文件?
- c++ - 在 C++ 中实现类似 Numpy 的元素访问
- python - Python: What function should I use? min() and max() doesn't seem to work?
- postgresql - postgreSQL 分区之间的简单等值连接需要很长时间(10 分钟)