2008年10月16日星期四

操作注册表的简单代码段

            HKEY hKey;

            LONG n = ::RegOpenKeyEx(HKEY_CURRENT_USER, L"Software\\Microsoft\\Pictures\\Camera\\USER", 0, 0, &hKey);
            if (n == ERROR_SUCCESS)
            {
                DWORD dwData;
                dwData = 5;
                LONG p = ::RegSetValueEx(hKey, L"Resolution", 0, REG_DWORD, (LPBYTE)&dwData, sizeof(DWORD));
                if (p == ERROR_SUCCESS)
                {
                    ::RegCloseKey(hKey);
                }
            }

2008年10月13日星期一

MSVCP80D.dll not found错误解决方法(vs2005)

成因:vs2005在生成可执行文件的同时生成了一个manifest file,在链接阶段会将此文件连接入可执行文件,在FAT32文件系统中,如果采用了增量链接,默认情况下vs2005不会对mainifest文件进行更新,从而导致链接嵌入失败。
官方推荐解决办法 project properties->Configuation properties->Manifest tool->General. 将Use FAT32 work-around 改为yes(默认为no)

比较笨的方法,不启用增量链接 Linker->General 将Enable Incremental Linking改为no。(或者每次build前将*.ilk(增量链接文件)文件删除)