一个VC6.0编译出错的有关问题,请大家指出错哪了
一个VC6.0编译出错的问题,请大家指出哪里错了?
我在一个头文件里定义了一个外部变量:extern HINSTANCE hInstance; 然后在主程序文件里包含了这个头文件
编译时,错误如下:
error LNK2001: unresolved external symbol "struct HINSTANCE__ * hInstance" (?hInstance@@3PAUHINSTANCE__@@A)
不知道是什么原因啊?错在哪儿啊?
头文件内容只有几行:
[code=C/C++][/code]#ifndef GLOBALVAR_H
#define GLOBALVAR_H
#pragma once
#include <windows.h>
extern HINSTANCE hInstance;
#endif
------解决方案--------------------
C++ 的全局常量只有静态连接性能。这不同于C,如果试图在C++的多个文件内使用全局变量也会产生LNK2001错误。一种解决的方法是需要时在头文件中加入该常量的初始化代码,并在.CPP文件中包含该头文件;另一种方法是使用时给该变量赋以常数。
是否是因为没有初始化,你初始化试试,赋值为NULL。
我在一个头文件里定义了一个外部变量:extern HINSTANCE hInstance; 然后在主程序文件里包含了这个头文件
编译时,错误如下:
error LNK2001: unresolved external symbol "struct HINSTANCE__ * hInstance" (?hInstance@@3PAUHINSTANCE__@@A)
不知道是什么原因啊?错在哪儿啊?
头文件内容只有几行:
[code=C/C++][/code]#ifndef GLOBALVAR_H
#define GLOBALVAR_H
#pragma once
#include <windows.h>
extern HINSTANCE hInstance;
#endif
------解决方案--------------------
C++ 的全局常量只有静态连接性能。这不同于C,如果试图在C++的多个文件内使用全局变量也会产生LNK2001错误。一种解决的方法是需要时在头文件中加入该常量的初始化代码,并在.CPP文件中包含该头文件;另一种方法是使用时给该变量赋以常数。
是否是因为没有初始化,你初始化试试,赋值为NULL。