我想问的是,能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)?,这样达到的效果就像是使用MFC自带的类一样(使用MFC类时,我们从来都是include头文件即可,而不关头源代码在哪个cpp文件中)!
5 个解决方案
#1
使用MFC类时,你并不需要重新编译源文件,而是连接到MFC运行时库。你不把源文件添加到工程,可以把源文件编译成库文件,然后在工程中添加这个库。是不是觉得一样?其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?
当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。
当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。
#2
up
#3
有些MFC代码不是以库的方式提供的,而是以c++源代码的方法提供的,我认为,比如在SRC目录下就有好多C++代码,不知道我的认为对不对?
其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。
另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?
其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。
另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?
#4
哦,我明白了,这个lib文件就是生成dll时生成的那个lib,但我想不想生成dll啊,能不能生成一个obj文件,然后连接时调用呢?
记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!
记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!
#5
作成静态库,然后放到别的工程中用
#1
使用MFC类时,你并不需要重新编译源文件,而是连接到MFC运行时库。你不把源文件添加到工程,可以把源文件编译成库文件,然后在工程中添加这个库。是不是觉得一样?其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?
当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。
当然有一种变通,就是编译成库后,可以在头文件中使用#import预编译指令导入库。
#2
up
#3
有些MFC代码不是以库的方式提供的,而是以c++源代码的方法提供的,我认为,比如在SRC目录下就有好多C++代码,不知道我的认为对不对?
其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。
另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?
其次,你上面说的:“其实你不指定源文件(添加到工程里)编译系统怎么可能知道需要编译连接什么文件?”,这我懂,所以我的问法是:“能不能在h文件中写一些连接相关的指令,让VC在连接时自动找到需要的源文件(cpp)”,我也不是很确定有没有才来问的。
另外还想问一下Mackz(在相互),如何编译成库呢?比如我从CListCtrl类派生了一个类,得到一个h文件和cpp文件,如何生成lib文件呢?
#4
哦,我明白了,这个lib文件就是生成dll时生成的那个lib,但我想不想生成dll啊,能不能生成一个obj文件,然后连接时调用呢?
记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!
记得我曾经试过生成obj文件,可是放到别的工程中就用不了了,同一个类,在不同的工程中,得到的obj文件好像不一样!
#5
作成静态库,然后放到别的工程中用