我想在我的项目project1中引用project2中的资源(如a.h);
但总出现许多问题(在vc6.0环境下).
请问各位,引用和编译时的规则是什么?非常感谢!我实在没办法,就把a.h及a.h引用的文件拷贝到project1的文件目录下,但引用a.h中的资源时还是提示找不到.
真不知道为什么,急切等待答案.谢谢!!!

解决方案 »

  1.   

    谢谢回复!
    按照你的方法,我在同一个工作区间中打开两个工程project1和project2,
    可编译project1时,和没有在工作区中打开project2时相比,编译错误一样的多.
    还是那些错误.project2中的资源还是没有定义.
    急....
      

  2.   

    也就是使用另一个项目project2中某一个文件a.h中的函数.
    我在我的项目中也#include "a.h"了,并按照1楼的建议,将project2和我的project1放在同一个工作区中了.
    问题依然存在.
    谢谢!!!
      

  3.   

    project->settings->c/c++->Preprocessor->Additional include directories:
    输入相对路径../project2/
    也可以绝对路径d:\project2然后
    #include <a.h>
      

  4.   

    你在PJ1工程中添加PJ2工程的资源就可以拉... 
    楼上的都有说~复制过去的时候注意重复,重新添加些ID (resource.h)
    吃饭先~,,,
      

  5.   

    如果project2是个库的话,可以这么做的,可以把project2里面的头文件相对于project1的路径添加到Additional Include Directories里面,然后直接的include那个头文件就可以了。这样就有楼上说的依赖性。
    如果是两个普通的工程,还要把实现这个头文件里面函数的cpp文件也加入到自己的工程里面,否则肯定要出link error
      

  6.   

    首先谢谢大家!!刚到csdn就学不少东西,谢谢!
    现在有两个问题:
    一.我只是测试project1,如果按照project- >settings- >c/c++- >Preprocessor- >Additional include directories设置的话,就不要把project2的文件拷贝到project1中了吧?二.我引用的project2是没问题的,编译也没问题.
      但编译我的project1时,显示project2中出现许多编译错误.(包括一些变量没定义,missing storage-class or type specifiers之类).
      为什么呢??
    非常谢谢!
      

  7.   

    1、是的
    2、可能还有些文件没有引用对,有可能是你的project2中的文件又引用了其它文件,而你在project1中引用project2中的文件时,造成了这些间接引用的文件找不到,还有一种可能就是你的project1和project2中的工程设置不太一样,另外再看看stdafx中引用的文件是否一样。
      

  8.   

    把project2中你需要的文件复制到project1文件目录下,在project1的工程内右击Source Files选Add file to folder添加源文件,右击Header Files选Add file to folder添加头文件。
      

  9.   

    to 踏雪无痕:
      1.project1和project2应该怎么设置?怎么样才是一样?
      2.project1和project2中的文件stdafx,需要一样吗?要怎样设置?
      非常谢谢!!!to flw:
      把project2中需要的文件复制到project1文件目录下.但是要复制好多的.比如a.h中引用了b.h,b.h又引用了c.h和d.h,等等,那么要复制每个文件的.h和.cpp  文件,这样的话是不是复制的太多太多了?
      非常谢谢!!!
      

  10.   

    一般来说,你要根据编译是出的错误信息,看看是什么地方出错,是未定义错误还是外部符号错误,未定义的话你自己在project2里搜寻一下提示未定义的这些东西都在哪些文件里,然后看看在什么地方引用了这个文件,很有可能是project2中的一些你在project1中用不到的文件里引用了某些vc的头文件,你要在project1里加上这些引用;如果是外部符号错误,你要找到提示错误的函数的实现部分,把这个文件加入到工程里编译。
      

  11.   

    把project2中需要的文件复制到project1文件目录下.但是要复制好多的.比如a.h中引用了b.h,b.h又引用了c.h和d.h,等等,那么要复制每个文件的.h和.cpp  文件,这样的话是不是复制的太多太多了? 
    ==================================================
    将自己用到的复制进去就行了,你在用别一个工程时一定对这些代码都看过了,可以先复制一两个最主要的,然后根据出错信息来引用其它的文件。
      

  12.   

    基本都是"syntax error : identifier"和"missing storage-class or type specifiers"的问题.
      

  13.   

    你用到的就得复制过去啊,要是引用project2中的文件的话,会受project2的限制,用起来就不灵活了