我在DLL中定义了一个结构,然后在DLL的导出类的构造函数中给这个结构的成员变量赋值,然后在主程序中调用,可得到的值却是-858993460代码如下://定义结构struct TreeConfig{ int m_nItemID; int m_nItemLevel;}; //在Dll导出类中定义一个结构对象class AFX_EXT_CLASS CDogClass : public CObject {public: int ShowDlg(); void Init(); CDogClass(); virtual ~CDogClass(); TreeConfig BaseTreeConfig;}; //在导出类的构造函数中初始化结构CDogClass::CDogClass(){ Init();} CDogClass::~CDogClass(){ }void CDogClass::Init(){ m_nNum = 0; m_sData = ""; BaseTreeConfig.m_nItemID = 11 ; BaseTreeConfig.m_nItemLevel = 22;} //在主程序中调用void CTestDogDlg::OnButton1() { // TODO: Add your control notification handler code here CDogClass dog; dog.Init(); if(dog.ShowDlg() != 0) { CString str; str.Format("Struct Num1 is %d Num2 is %d", dog.BaseTreeConfig.m_nItemID, dog.BaseTreeConfig.m_nItemLevel); AfxMessageBox(str); } } //结果显示Struct Num1 is -858993460 Num2 is -858993460
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货