struct的实例在哪,怎样定义好?
//-------------------------------------
Params.h
//-------------------------------------
namespace MyParams
{
struct Param1
{
int P00;
int P01;
int P02;
String P03;
String P04;
} Param1_Data;
};
//-------------------------------------
App.C
//-------------------------------------
#include "Params.h "
using Namespace MyParams;
Main
{
ShowMessage( Param1_Data.P00 );
}
编译时 Link Warning:
[Linker Warning] Public symbol MyParams::P00 ' defined in both module
Params.Obj And Main.Obj.
????
怎样放置,才能避免出现此错误呢?我想把Param1_Data作为全局变量用,
只想实例化一次。
[解决办法]
.h文件
#include <string>
using namespace std;
namespace MyParams
{
typedef struct Param1
{
int P00;
int P01;
int P02;
string P03;
string P04;
} Param1_Data;
};
.cpp
#include "Params.h "
using namespace MyParams;
Param1_Data mydata;
int main()
{
mydata.P00 ;
return 0;
}
lz很多大小写不分哦
[解决办法]
//Params.h
#include <string>
namespace MyParams
{
struct Param1
{
int P00;
int P01;
int P02;
std::string P03;
std::string P04;
};
};
//Params.cpp
namespace MyParams
{
Param1 Param1_Data;
};
// app.cpp
#include "Params.h "
using Namespace MyParams;
extern Param1 Param1_Data;
void main()
{
ShowMessage( Param1_Data.P00 );
}
[解决办法]
如果在多个文件中要引用mydata,就在其他文件里用
external Param1_Data mydata;
[解决办法]
例如:
在stdafx.cpp中加入:
Param1_Data mydata;
然后在stdafx.h中加入:
external Param1_Data mydata;
这样定义以后无论在什么文件中都是可见的.