当前位置: 首页 > 知识库问答 >
问题:

c从char*到无符号char的转换?

邢和光
2023-03-14

你好,我正在尝试创建一个程序路径并放入注册表文件中,但我一直出错。这是代码:

#include <iostream> 
#include <windows.h> 
#include <winuser.h> 
#include <tchar.h>
#include <limits>

using namespace std;

void reg() {
char buffer[MAX_PATH];

GetModuleFileName(NULL,buffer,sizeof(buffer));

const unsigned char Path[ MAX_PATH ] = {buffer};

::HKEY Handle_Key = 0;

::RegSetValueEx( Handle_Key, "My Directory", 0, 1, Path, sizeof Path  );
};

我得到的错误说

从“char*”到“unsigned char”[-fppermissive]的转换无效

我花了几个小时寻找解决方案,但我找不到。

共有1个答案

姜德容
2023-03-14

我猜,问题在于这条线

const unsigned char Path[ MAX_PATH ] = {buffer};

这里的问题是,您试图使用字符指针创建单个字符数组。

您仅将该变量用作<code>RegSetValueEx</code>调用的临时变量,因此您并不真正需要它。相反,直接使用缓冲区调用该函数。

此外,您不应该在这里使用< code>sizeof,因为这将把所有的缓冲区放在注册表中,而不仅仅是实际的字符串。使用< code>strlen。

喜欢:

::RegSetValueEx( Handle_Key, "My Directory", 0, 1,
                 reinterpret_cast<unsigned char*>(buffer),
                 strlen(buffer));
 类似资料:
  • 我在编译代码时遇到了问题。 我从http://www.cplusplus.com/reference/algorithm/all_of/?kw=all_of.拿了密码 我正在使用代码::块12.11,我有以下错误: C:\用户\PC-HP\桌面\chiffre\romain\main.cpp||在实例化的'boolall_of(InputIterator,InputIterator,UnaryPr

  • 我在尝试编写一个Arduino程序来读取通过串行连接处理发送的命令时遇到了一个小问题。处理应该通过串行连接向Arduino发送“H”或“L”。这个值在我的程序中以字符的形式存储,但当我尝试进行串行操作时。写入(“值:%c,val)”时,出现“从'const char*'到'const uint8_t*'的无效转换”错误。如果有人能帮我解决这个问题,那就太好了。我真的需要弄清楚这个值是什么,这样我才

  • 描述 (Description) C库函数char *strrchr(const char *str, int c)通过参数str指向的字符串中最后一次出现的字符c (unsigned char)。 声明 (Declaration) 以下是strrchr()函数的声明。 char *strrchr(const char *str, int c) 参数 (Parameters) str - 这是C

  • 描述 (Description) C库函数char *strchr(const char *str, int c)搜索参数str指向的字符串中第一次出现的字符c (unsigned char)。 声明 (Declaration) 以下是strchr()函数的声明。 char *strchr(const char *str, int c) 参数 (Parameters) str - 这是要扫描的C

  • 转码 Stylus可以字符转码。这可以让字符变成标识符,或是渲染成字面量。 例如: body padding 1 \+ 2 编译成: body { padding: 1 + 2; } 注意Stylus中/当作为属性使用的时候需要用括号括起来: body font 14px/1.4 font (14px/1.4) 生成: body { font: 14px/1.4; font

  • 问题内容: 我试图将const char *传递给从Swift中的Swift字符串转换而来的旧C库。 这是我正在调用的C函数: 如何将Swift字符串转换为这种const char类型?当我像这样传递ipAddress时,它可以工作: 但是当我这样通过时dit不起作用 我在需要指定类型的函数中需要它: 我尝试使用AnyObject而不是String,但这也不起作用。 谢谢。 问题答案: 不知道为什