打开startup说是无法定位程序输入点can t create procesproces...

无法定位程序输入点CreateDXGIFactory1于动态链接库dxgi.dll上_百度知道秋叶原之旅2 无法定位程序输入点MFCreateSourceResovler于动态链接库MFPlat.DLL上_百度知道7151人阅读
编程学习(115)
点点滴滴(54)
windows(11)
写了一个注册表的程序,在win7下可正常运行,拿到XP系统下运行,爆出如下错误:
接下来试着把win7下的ADVAPI32.DLL拷贝到目录下,结果还是不行。
拿出IDA看下xp下面的ADVAPI32.DLL的导出函数,发现原来xp下的该dll没有导出该函数。
查看MSDN,发现RegSetKeyValue只支持Vista以上的操作系统。看来是使用了高版本系统才支持的API导致出错。
摸索了一下,改用RegSetValueExA函数,就可以了。
顺便总结一下注册表编程:
①先打开注册表
②操作子项
示例代码:
ST st = GetSystemType();
if (st==WINDOWS_XP)
r = RegOpenKeyExA(HKEY_LOCAL_MACHINE,
&SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\Windows&, //注册表路径
0, KEY_WRITE, &hk);
if (r!=ERROR_SUCCESS)
MessageBoxA(&写注册表失败!&, &Warn&, MB_OK);
r = RegSetValueExA(hk, //注册表句柄
&AppInit_DLLs&, //子项名称
0, REG_SZ, (BYTE*)filename, strlen(filename));
if (r!=ERROR_SUCCESS)
MessageBoxA(&写注册表失败!&, &Warn&, MB_OK);
} 注意不能直接调RegSetValueExA,传入绝对路径,这样操作是不能成功的。

参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:491691次
积分:5607
积分:5607
排名:第3284名
原创:127篇
转载:186篇
评论:39条
(1)(5)(2)(4)(2)(2)(4)(6)(1)(6)(1)(2)(4)(3)(2)(2)(4)(8)(2)(9)(7)(4)(9)(6)(6)(6)(5)(8)(13)(7)(1)(2)(3)(9)(1)(3)(2)(3)(12)(7)(14)(15)(27)(18)(15)(5)(11)(9)(3)(9)(7)官网新下载iTunes***后,打开提示无法定位程序输入点怎么回事?_百度知道

参考资料

 

随机推荐