Visual studio Visual Studio C++;创建包含多个项目的解决方案。使用DLL或LIB彼此交谈?

Visual studio Visual Studio C++;创建包含多个项目的解决方案。使用DLL或LIB彼此交谈?,visual-studio,visual-studio-2010,visual-c++,visual-studio-2012,visual-studio-community,Visual Studio,Visual Studio 2010,Visual C++,Visual Studio 2012,Visual Studio Community,您好,我正在尝试将两个VisualStudio解决方案文件合并为一个,我一直很难将一个项目调用到另一个项目 我有解决方案X,其中包含项目A,这是一个控制台应用程序来控制摄像机 我有另一个解决方案Y,其中包含项目B为另一个应用程序生成一个dll来显示绘图 在将这两个项目合并到一个解决方案中之后,我将项目A设置为静态库,以便项目B调用项目A中的函数 在项目B上,我添加了项目A的引用,还添加了项目A的包含文件的路径 我可以独立构建项目A,但无法构建项目B。Visual studio抱怨如下: S

您好,我正在尝试将两个VisualStudio解决方案文件合并为一个,我一直很难将一个项目调用到另一个项目

  • 我有解决方案X,其中包含项目A,这是一个控制台应用程序来控制摄像机
  • 我有另一个解决方案Y,其中包含项目B为另一个应用程序生成一个dll来显示绘图
在将这两个项目合并到一个解决方案中之后,我将项目A设置为静态库,以便项目B调用项目A中的函数

在项目B上,我添加了项目A的引用,还添加了项目A的包含文件的路径

我可以独立构建项目A,但无法构建项目B。Visual studio抱怨如下:

 Severity   Code    Description Project File    Line    Suppression State
 Error  LNK1120 1 unresolved externals  XOP3    
 C:\Users\xxx\Documents\project\pvcam_project\XOP3\VC\XOP3-64.xop   1   

 Severity   Code    Description Project File    Line    Suppression State
 Warning    LNK4098 defaultlib 'LIBCMT' conflicts with use of other libs; 
 use /NODEFAULTLIB:library  XOP3    
 C:\Users\xxx\Documents\project\pvcam_project\XOP3\VC\LINK  1   

 Severity   Code    Description Project File    Line    Suppression State
 Error  LNK2019 unresolved external symbol pl_pvcam_get_ver referenced in 
 function "void __cdecl DoWave(void * *)" (?DoWave@@YAXPEAPEAX@Z)   XOP3    
 C:\Users\xxx\Documents\project\pvcam_project\XOP3\VC\XOP3.obj  1   
我以此为例,能够构建

我想知道:

  • 将项目a作为静态库供项目B访问是一个好主意吗?项目A应该是dll吗
  • 在解决方案Y中,我添加了一个项目a,并通过以下方式更新了包含文件等的位置(),这是合并两个解决方案的最简单方法吗
  • 最后,这是最重要的一点,我不知道如何解决编译错误

  • 非常感谢您查看我的问题。

    因此,通过为项目a和B添加库文件,编译错误消失了,但我仍然有“1>链接:警告LNK4098:defaultlib'LIBCMT'与其他库的使用冲突;使用/NODEFAULTLIB:library”。至少这是一个警告。你不需要添加引用,只需从一开始就调用你需要的函数。然后将其所需的头文件和.CPP文件添加到项目B。如果刚添加到项目B的文件调用了A中的其他文件,则继续添加和编译它们以避免链接错误。因此,通过为项目A和B添加库文件,编译错误消失了,但我仍然有“1>链接:警告LNK4098:defaultlib'LIBCMT'与其他lib的使用冲突;使用/NODEFAULTLIB:library“。至少这是一个警告。您不必添加引用,只需从第一个开始调用所需的函数即可。然后将其所需的头文件和.CPP文件添加到项目B。如果刚添加到项目B的文件调用了A中的其他文件,则继续添加和编译它们以避免链接错误。