gpt4 book ai didi

c++ - Visual C++ 字节 *

转载 作者:太空宇宙 更新时间:2023-11-04 12:20:42 25 4
gpt4 key购买 nike

我刚从 Dev C++ 切换到 Visual C++,我的代码中出现了一个错误,而我在使用 Dev C++ 时却没有出现这个错误。错误是:

------ Build started: Project: badman_flex, Configuration: Debug Win32 ------
main.cpp
c:\documents and settings\administrator\my documents\visual studio 2010\projects\badman_flex\badman_flex\main.cpp(49): error C2664: 'RegSetValueExA' : cannot convert parameter 5 from 'char *' to 'const BYTE *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========

围绕该行的代码是:

RegOpenKeyEx(HKEY_LOCAL_MACHINE, regPath, 0, KEY_ALL_ACCESS, &hKey);  
RegQueryValueEx(hKey,"Userinit", 0, 0, (BYTE*)buff, &dwBufSize);

if(!strstr(buff, "myapp.exe")) {

char *filepath = strcat(windowsDir, filename);
char *newRegValue = strcat(buff, filepath);
RegSetValueEx(hKey, "Userinit", 0, REG_SZ, newRegValue, strlen(newRegValue));

什么是字节,为什么 VC++ 会出错?

谢谢

编辑 我进行了类型转换并且成功了:D

最佳答案

RegSetValueEx() API 接受不同类型的数据写入注册表。它的第 5 个参数是指向该数据的指针,声明为 BYTE*。你传递给它的是一个 char*,错误的类型。请注意,您在 RegQueryValueEx() 调用中的几行后面就做对了。修复:

 RegSetValueEx(hKey, "Userinit", 0, REG_SZ, (BYTE*)newRegValue, strlen(newRegValue));

关于c++ - Visual C++ 字节 *,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5266440/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com