#include <stdio.h>
#include <string.h>
unsigned char sysdir[256];
unsigned char drivcedir[256];
int RegHandelDev(char * exename)
{
//修改注册表启动一个NTHANDLE驱动程序
char subkey[200];
int buflen;
HKEY hkResult;
char Data[4];
DWORD isok;
buflen = sprintf(subkey,"System\\CurrentControlSet\\Services\\%s",exename);
subkey[buflen]=0;
isok = RegCreateKey(HKEY_LOCAL_MACHINE,subkey,&hkResult);
if(isok!=ERROR_SUCCESS)
return FALSE;
Data[0]=3;
Data[1]=0;
Data[2]=0;
Data[3]=0;
isok=RegSetValueEx(hkResult,"Start",0,4,(const unsigned char *)Data,4);
Data[0]=1;
isok=RegSetValueEx(hkResult,"Type",0,4,(const unsigned char *)Data,4);
isok=RegSetValueEx(hkResult,"ErrorControl",0,4,(const unsigned char *)Data,4);
GetSystemDirectory(sysdir,256);
buflen = sprintf(drivcedir,"%s\\Drivers\\FxFiltHook.sys",sysdir);
buflen = sprintf(subkey,"\\??\\%s",drivcedir);
subkey[buflen]=0;
isok=RegSetValueEx(hkResult,"ImagePath",0,1,(const unsigned char *)subkey,buflen);
RegCloseKey(hkResult);
buflen = sprintf(subkey,"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\%s",exename);
subkey[buflen]=0;
return TRUE;
}
int main(int argc,char *argv[])
{
//注册驱动程序
if(RegHandelDev("Fxfilthook")==FALSE)
return FALSE;
return TRUE;
}
、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、
上面一段程序编译错误15,而都是一些简单的数据类型没定义的错误我实在是想不出还需要什么头文件
大家可以直接把上面的那段程序复制上去试试
错误提示
error C2065: 'HKEY' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'hkResult'
error C2065: 'hkResult' : undeclared identifier
error C2065: 'DWORD' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'isok'
error C2065: 'isok' : undeclared identifier
error C2065: 'RegCreateKey' : undeclared identifier
error C2065: 'HKEY_LOCAL_MACHINE' : undeclared identifier
error C2065: 'ERROR_SUCCESS' : undeclared identifier
error C2065: 'FALSE' : undeclared identifier
error C2065: 'RegSetValueEx' : undeclared identifier
error C2065: 'GetSystemDirectory' : undeclared identifier
error C2664: 'sprintf' : cannot convert parameter 1 from 'unsigned char [256]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
error C2065: 'RegCloseKey' : undeclared identifier
error C2065: 'TRUE' : undeclared identifier
Error executing cl.exe.Fxfilthook.exe - 15 error(s), 0 warning(s)
#include <string.h>
unsigned char sysdir[256];
unsigned char drivcedir[256];
int RegHandelDev(char * exename)
{
//修改注册表启动一个NTHANDLE驱动程序
char subkey[200];
int buflen;
HKEY hkResult;
char Data[4];
DWORD isok;
buflen = sprintf(subkey,"System\\CurrentControlSet\\Services\\%s",exename);
subkey[buflen]=0;
isok = RegCreateKey(HKEY_LOCAL_MACHINE,subkey,&hkResult);
if(isok!=ERROR_SUCCESS)
return FALSE;
Data[0]=3;
Data[1]=0;
Data[2]=0;
Data[3]=0;
isok=RegSetValueEx(hkResult,"Start",0,4,(const unsigned char *)Data,4);
Data[0]=1;
isok=RegSetValueEx(hkResult,"Type",0,4,(const unsigned char *)Data,4);
isok=RegSetValueEx(hkResult,"ErrorControl",0,4,(const unsigned char *)Data,4);
GetSystemDirectory(sysdir,256);
buflen = sprintf(drivcedir,"%s\\Drivers\\FxFiltHook.sys",sysdir);
buflen = sprintf(subkey,"\\??\\%s",drivcedir);
subkey[buflen]=0;
isok=RegSetValueEx(hkResult,"ImagePath",0,1,(const unsigned char *)subkey,buflen);
RegCloseKey(hkResult);
buflen = sprintf(subkey,"\\Registry\\Machine\\System\\CurrentControlSet\\Services\\%s",exename);
subkey[buflen]=0;
return TRUE;
}
int main(int argc,char *argv[])
{
//注册驱动程序
if(RegHandelDev("Fxfilthook")==FALSE)
return FALSE;
return TRUE;
}
、、、、、、、、、、、、、、、、
、、、、、、、、、、、、、、、、、、、、
上面一段程序编译错误15,而都是一些简单的数据类型没定义的错误我实在是想不出还需要什么头文件
大家可以直接把上面的那段程序复制上去试试
错误提示
error C2065: 'HKEY' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'hkResult'
error C2065: 'hkResult' : undeclared identifier
error C2065: 'DWORD' : undeclared identifier
error C2146: syntax error : missing ';' before identifier 'isok'
error C2065: 'isok' : undeclared identifier
error C2065: 'RegCreateKey' : undeclared identifier
error C2065: 'HKEY_LOCAL_MACHINE' : undeclared identifier
error C2065: 'ERROR_SUCCESS' : undeclared identifier
error C2065: 'FALSE' : undeclared identifier
error C2065: 'RegSetValueEx' : undeclared identifier
error C2065: 'GetSystemDirectory' : undeclared identifier
error C2664: 'sprintf' : cannot convert parameter 1 from 'unsigned char [256]' to 'char *'
Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
error C2065: 'RegCloseKey' : undeclared identifier
error C2065: 'TRUE' : undeclared identifier
Error executing cl.exe.Fxfilthook.exe - 15 error(s), 0 warning(s)
解决方案 »
- VC中edit控件鼠标停留弹出提示的方法
- 关于ReadDirectoryChangesW未定义的问题
- 如何计算两个矩形相交部分的面积?
- hashtable 的线程安全?
- [求助]有关string的~
- 菜鸟求助:清除图像
- 如何得到IPv6分组在本地的接收接口地址?或者如何指定其在本地的发送接口地址?
- 如何将一个int型的数转换成占一个字节的数?例如:11 转化成0x0b
- 本人想在一背景底图的不同位置处显示多个随数据源变化的文本(如股票显示系统),如何使这些动态文本与背景底图做到无缝。征集最佳方法,给30分
- 《程序员大本营2001--.NET专辑》调查搞了很长时间了,到底什么时候出呀,我好想买。
- 为什么在CWinThread::InitInstance里使用CDaoDatabase::Execute()就会报错
- 高分邀请ATL高手,帮我调调我的ATL工程。解决后,另有分相赠!!!
无论是加#include <stdio.h>和#include <string.h>还是不加都是一样的错误,我是写DOS程序,可是只有加WINDOWS.H错误会少的,可是上面的错误只的都是最基本的数据类型没定义啊!
你用到了API函数RegCreateKey,
还有win32数据类型HKEY
error C2664: 'GetSystemDirectoryA' : cannot convert parameter 1 from 'unsigned char [256]' to 'char *'Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
error C2664: 'sprintf' : cannot convert parameter 1 from 'unsigned char [256]' to 'char *' Types pointed to are unrelated; conversion requires reinterpret_cast, C-style cast or function-style cast
Error executing cl.exe.Fxfilthook.exe - 2 error(s), 0 warning(s)、、、、、、、、、、、、、、、、、、、、、、、、、、、
只得是这两句
buflen = sprintf(drivcedir,"%s\\Drivers\\FxFiltHook.sys",sysdir);
buflen = sprintf(subkey,"\\??\\%s",drivcedir);
我刚看了MSDN我个人认为没错啊!
急。。这个问题摸了我一天了
buflen = sprintf((char*)drivcedir,"%s\\Drivers\\FxFiltHook.sys",sysdir);