我想在本工程引进一个功能,在调用了别人的.h文件时候,先出了的是
这个时候是因为这个ID号是别人工程已经添加的dialog的ID标志,但我这个工程没有这一个地址,所以会说未声明。
当我想用一个自己已经有的ID号去代替原有的ID时候,发现报了以下四个错误
注意:如果.h文件是从别人工程那里移植过来的,那么对于这种无法解析的外部符号一般的方法是:查看是不是没有把响应的.cpp文件也一起移植过来。
错误是说在找不到函数的定义但,这个函数又在这个作用域的这个函数里面用了。查看源文件可以知道这个函数创建了一个类RemnantMatInfoDlg的莫泰对话框dlg。而创建任何一个类的对话框都应该要有这个类的构造函数和析构函数,但因为这里是别人的原来工程的.h而没有移植.cpp过来所以这些构造和析构函数都是没有的,所以这里要创建dlg但又没有这个对话框的初始化信息,所以导致了报错1和3,而报错2是因为dlg调用了类RemnantMatInfoDlg里面的一个函数Init但同样的原因,这里的Init并没有定义,所以也参数这个错误。下面那个Init2是后来加以验证的函数。
如果.h文件是从别人工程那里移植过来的,那么对于这种无法解析的外部符号一般的方法是:查看是不是没有把响应的.cpp文件也一起移植过来。可见这里的错误其实是一个构造函数和一个析构函数的缺少。
所以接着有把.cpp也一并移植过来发现有更多的问题,
但一看都是一些ID问题,这些ID在原来的工程里面与设置,而我这个工作没有,所以要解决的话,要么把对应的ID加上去,要么把ID换成本地ID。这就MFC工程移植过程中会遇到的一些问题。
小结:MFC都是资源对应类,类对应变量,所以对MFC 的资源进行操作都是对其相关的类定义的变量对象通过一些函数调用进行操作,事实上在编程都是对内存进行操作,而变量对象有内存,所以才是资源对应变量。