none
RegOpenKeyEx即使加了64位的flag返回值依旧为2 ,求解 RRS feed

  • 问题

  • // 交互英语.cpp : 定义控制台应用程序的入口点。
    //
    
    #include "stdafx.h"
    #pragma warning(disable : 4996) 
    
    int _tmain(int argc, _TCHAR* argv[])
    {
    	HKEY hkey;
    	TCHAR RegKey[100] =TEXT( "SOFTWARE\\Wow6432Node\\CrtvuOnline\\NEIE\\VLS\\NE\\Level");
    	TCHAR Buffer[100] = { '\0' };
    	BYTE Road[100] = { '\0' };
    	TCHAR Item[] = TEXT("PATH");
    	ULONG dtype = REG_SZ;
    	ULONG wzb = 70;
    	for (int i = 0; i < 4; i++)
    	{
    		wcscpy(Buffer,RegKey);
    		TCHAR alp[2] = { '\0' };
    		alp[0] = (TCHAR)i + '0'+1;
    		wcscat(Buffer,alp);
    		wprintf(Buffer);//Buffer是在刚才的路径末尾加1的一个字符串
    		puts("");
    		//printf("%d", RegOpenKeyEx(HKEY_LOCAL_MACHINE, Buffer, 0, KEY_WOW64_64KEY | KEY_READ, &hkey));
    		if (RegOpenKeyEx(HKEY_LOCAL_MACHINE, Buffer, 0, KEY_WOW64_64KEY | KEY_READ , &hkey) == 0)
    		{
    			RegQueryValueEx(hkey, Item,0,&dtype, Road, &wzb);
    			RegCloseKey(hkey);
    			printf("haha");
    		}
    	}
    	printf((char*)Road);
    	system("pause");
    	return 0;
    }
    
    

    这段代码说死都是2,求解啊!

    Visual Basic 初学者 望关照!

    2014年2月28日 9:41

答案

  • 2: The system cannot find the file specified. 

    您注册表的路径正确吗?


    Visual C++ enthusiast, like network programming and driver development. At present is being engaged in the WinCE/Windows Mobile platform embedded development.

    2014年3月1日 3:19
    版主

全部回复