我这里有个程序,就3个文件,A.cpp  StdAfx.cpp  StdAfx.h
A.cpp文件里面
#include "stdafx.h"//变量的申明
...
char sFixKey[30];
char sFixTemp[20];
memcpy(sFixKey,"\0",30);
memcpy(sFixTemp,"\0",20);
DWORD dwvalue;
dwvalue = 1;
...
//下面有几个给注册表里键设置的if语句
if(RegOpenKey(HKEY_CURRENT_USER,(LPCTSTR)strKey,&hResult)==ERROR_SUCCESS)
{
    RegSetValueEx(hResult,(LPCTSTR)"DisableTaskMgr",0L,REG_DWORD,(CONST BYTE*)&dwvalue,sizeof(DWORD));
    RegCloseKey(hResult);
}//下面有个函数
int xx()
{
  //内容省略了
}stdafx.cpp文件里面就一句话
#include "stdafx.h"然后是stdafx.h文件,内容全部在下面
//      are changed infrequently
//#if !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
#define AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
#define _WIN32_WINNT 0x0500
#define UNICODE#define WIN32_LEAN_AND_MEAN // Exclude rarely-used stuff from Windows headers#include <afxwin.h>#include <Winbase.h>#include <windows.h>
//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ will insert additional declarations immediately before the previous line.#endif // !defined(AFX_STDAFX_H__A9DB83DB_A9FD_11D0_BFD1_444553540000__INCLUDED_)
我把工程编译后,通过不了,会报错。
error C2501: "memcpy":缺少存储类或类型说明符
error C2365: "memcpy":重定义;以前的定义是“函数”
error C2078:初始值设定项太多
...
error C2501:"dwvalue":缺少存储类或类型说明符
error C2371:"dwvalue":重定义;不同的基类型
...
error C2059:语法错误:“if”
error C2143:语法错误:缺少“;”(在“{”的前面)
error C2447:“{”:缺少函数标题(是否是老式的形式表?)这个是怎么回事呢? 大虾帮帮

解决方案 »

  1.   

    memcpy(sFixKey,"\0",30);
    memcpy(sFixTemp,"\0",20);
    DWORD dwvalue;
    dwvalue = 1;这个你放在哪里了??放在程序外面?????
      

  2.   


    就是那个A.cpp文件里面
    #include "stdafx.h"
    然后就是那些变量
    包括memcpy(sFixKey,"\0",30);
    memcpy(sFixTemp,"\0",20);
    DWORD dwvalue;
    dwvalue = 1;
      

  3.   

    memcpy(sFixKey,"\0",30);改成memset(sFixKey,0,30);或者memcpy(sFixKey,"\0",sizeof(char)*30);