说明部分放在"stdafx.h"中
如: extern int iNum;
定义在什莫地方都可

解决方案 »

  1.   

    你把它另外放在一个CPP文件里吧。这样整个结构要清晰一点。
    把这个CPP加入你的PROJECT。
    另外,在CPP对应的头文件中加入函数声明。其它单元要用的话,
    把这个头文件include 进来就行了。
      

  2.   

    Thank you.
    我还有一个问题:现在我要从dll中导入一个函数:char* GetName(),HINSTANCE hInstance;
    typedef char*(*GETNAME)(void)
    GETNAME GetName;
    hInstance = LoadLibrary("CUser");
    GetName = (GETNAME)GetProcAddress(hInstance,"GetName");
    现在就可以正确使用该函数GetName()了,
    因为该函数要在程序的多个类中使用,我想把它设为全局函数,要不然在不同的类中使用
    时都要重复上面的调用,于是我将下面三句话放在StdAfx.h中。
    HINSTANCE hInstance;
    typedef char*(*GETNAME)(void)
    GETNAME GetName;
    这时候就会出现连接错误,意思是说重复定义了该函数,我想可能是typedef的原因,
    请问这个问题应该怎么解决?
      

  3.   

    GETNAME GetName;不应该放在stdafx.h里面,可以放在stdafx.cpp里因为是变量定义,实体只能有一个,如果在.h文件里,多个cpp包含时,就会出重复定义的错。你为了使用它还必须在stdafx.h里写 extern GETNAME GetName;
    这一句不是定义,是声明,意思就是告诉包含stdafx.h的cpp,这里有个GetName变量,你可以使用它。至于该变量的定义在别处,但是并不关心该定义在何处。所以紧记: 声明一般在.h中,定义一般在c或者cpp中