我尝试使用CoCreateGuid创建GUID,我想使用RegSetValueEx将此guid添加到注册表中。
我不是一个好的程序员,但我正在学习它。我尝试了一些方法,但总是遇到任何错误。 所以我想问一下这里的人是否可以帮我解决这个问题,将一个guid注册到注册表中的一个密钥。 如果有人可以解决这个难题,我将非常感谢。 我看着WWW,但我没有找到任何东西,看起来像是一个修复。
在我忘记之前,我正在使用“Microsoft Visual Studio .Net 2003”版本7.1.3088,我需要使用这个旧版本,因为Dll是创建2004/2005。 (我知道这与我的问题没什么关系)
我的最后一次尝试就是这个(如果有人用另一种方式将创建的guid注册到注册表中的密钥,那么我也会感激不尽:-)):
GUID guid;
unsigned char* StringUuid;
if (CoCreateGuid(&guid) == S_OK){
if (UuidToString(&guid, &StringUuid) == RPC_S_OK){
RpcStringFree(&StringUuid) ;
}
else{
FILE *openlog=fopen("log.txt","a"); //Add an error message
if(openlog)
{
fprintf(openlog, "Error 2!");
}
fprintf(openlog,"\n");
fclose(openlog);
}
}
else{
FILE *openlog=fopen("log.txt","a"); //Add an error message
if(openlog)
{
fprintf(openlog, "Error 1!");
}
fprintf(openlog,"\n");
fclose(openlog);
}
HKEY key;
DWORD dwDisposition;
if(RegCreateKeyEx(HKEY_LOCAL_MACHINE,
TEXT("SOFTWARE\\Test"),
0,
NULL,
0,
KEY_WRITE,
NULL,
&key,
&dwDisposition) == ERROR_SUCCESS)
{
long SetComm = RegSetValueEx(key, "test_one", 0, REG_SZ, (LPBYTE)StringUuid, strlen(StringUuid));
if(SetComm == ERROR_SUCCESS){
FILE *openlog=fopen("log.txt","a"); //Add positive message into file
if(openlog)
{
fprintf(openlog, "[Successfully]: Writed!");
}
fprintf(openlog,"\n");
fclose(openlog);
}else{
FILE *openlog=fopen("log.txt","a"); //Add failed message into file
if(openlog)
{
fprintf(openlog, "[Successfully]: Error to Write!");
}
fprintf(openlog,"\n");
fclose(openlog);
}
RegCloseKey(key);
}