主要是想知道在写代码的时候,路径的设置问题。起因:
在http://blog.csdn.net/lixiaosan/archive/2006/04/29/697647.aspx看关于dll的一些知识点时,试着自己去实现第一个libCall,但是这个工程和之前生成libTest.dll的工程并不在一个工作空间中,我将libTest.dll拷入了libCall的Debug下面,但是程序中的这一句
//#pragma comment( lib, "..\\debug\\stalib.lib" ) //指定与静态库一起连接
出了问题。想起曾经用GetModuleFileName得到当前的路径其中是直接找到了可执行文件的路径阿。迷惑。
请大家不吝赐教!谢谢!
在http://blog.csdn.net/lixiaosan/archive/2006/04/29/697647.aspx看关于dll的一些知识点时,试着自己去实现第一个libCall,但是这个工程和之前生成libTest.dll的工程并不在一个工作空间中,我将libTest.dll拷入了libCall的Debug下面,但是程序中的这一句
//#pragma comment( lib, "..\\debug\\stalib.lib" ) //指定与静态库一起连接
出了问题。想起曾经用GetModuleFileName得到当前的路径其中是直接找到了可执行文件的路径阿。迷惑。
请大家不吝赐教!谢谢!
VC6:tools -- options -- diretories -- libraries filesVC8: 属性 -- 连接器 -- 常规 -- 附加库目录VC6还可以直接在工程下建一个lib文件夹,然后右击此文件夹,选Add files to folder,把lib文件加进来
那也就是说\是不合法的?
可是有时候也见到这种用法阿。
to wlwlxj(wlwlxj) & ouyh12345(五岭散人) & rabo(不哭死人):
那\和/有什么区别呢?.表示当前路径,..表示当前路径的上一层,那这个当前路径到底指的是什么路径?指的是工作空间的路径么?#pragma comment( lib, "..\\debug\\stalib.lib" ) //指定与静态库一起连接
那上面这句,里面相对路径到底是相对哪个的?
迷糊!
那种路径设置,我做过,确实是可以。但是如果不采用这种做法,直接在程序中用相对路径来标示,该如何做?就像我在程序中的一样,将stalib.lib拷入Debug下面,而程序中无论是用#pragma comment( lib, "..\\debug\\stalib.lib" )还是#pragma comment( lib, ".\\debug\\stalib.lib" )都有问题,提示cannot open file ".\stalib.lib"
如果当前路径认为是工作空间的路径,那么#pragma comment( lib, ".\\debug\\stalib.lib" )这种写法应该是对的啊,如果是debug,则第一种写法也该是对的啊?这是什么缘故?
例:c:\aa下有一个文件bb.exe一个文件夹cc,cc中有一个文件叫dd
那么 对于bb来说..\\就表示aa这个文件夹,
..\\cc\\dd则表示dd这个文件。
嗯,这个说的我懂了。但是为什么那个程序出了问题呢?
我的工程libCall路径:D:\libCall
stalib。lib路径:D:\libCall\Debug
那么#pragma comment( lib, "..\\debug\\stalib.lib" )这种写法应该是对的吧?问题出在哪里?
#pragma comment( lib, stalib.lib")
然后再将该库文件加进来就可以了~~~
是debug?还是D:\libCall?
而./和.\\到底有什么区别?
那么vc的当前路径到底是指dsw所在的路径还是指debug下面exe所在的路径呢?呵呵!