【问题标题】:reference other projects in visual studio for win32 projects参考 Visual Studio 中其他项目的 win32 项目
【发布时间】:2010-05-17 08:11:44
【问题描述】:

我正在使用 win32 API,我选择的语言是纯 C 而不是 C++

假设我有一个项目 A 存在于 Visual Studio 的解决方案 S

我想在S

中添加另一个项目B(有一些常用的实用功能)

现在我想在项目 A 中引用项目 B... 这样我就可以使用项目 B 源代码中的那些实用功能等级。我不希望它被用于项目 B

的 dll

假设项目 B 包含一些与数学相关的函数,我想从项目 A 中调用函数,或者项目 B 包含数据结构,我想在项目 A 中使用它们

如何实现这一点....在此先感谢

【问题讨论】:

    标签: c visual-studio winapi


    【解决方案1】:

    如果您不希望项目 B 成为 DLL,那么它必须是静态库。如果项目 B 已经是一个 EXE,那么您需要添加第三个项目:项目 C - 一个静态库项目,其中包含 A 和 B 之间共享的源文件。项目 A 和 B 可以引用它,也可以将其列为项目依赖。


    好的。如果您在 Devstudio 中使用项目创建解决方案,那么磁盘上的默认布局将类似于 - 已将 Project 3 创建为静态库项目:

    c:\Projects\SolutionDir
                           \Project1
                           \Project2
                           \Project3
    

    将通用结构和函数的源文件 (.cpp) 和头文件 (.h) 移至项目 3。

    在项目 A 和 B 中,找到 Project Settings > Compiler > Additional Includes 并添加一个说明

    $(SolutionDir)
    

    现在,在project1和2中,你可以这样引用Project3的头文件了:

    #include "Project3/commonheader.h"
    // or
    #include "Project1/sharedFunctionDecls.h"
    #include "Project2/sharedStructDefs.h"
    

    右键单击 Project1(然后是 Project 2)并选择“Project Dependencies...”并勾选 Project 3。

    【讨论】:

    • 假设项目 B 包含一些与数学相关的函数,我想从项目 A 调用函数或项目 B 包含数据结构,我想在项目 A 中使用它们
    • 没有。项目 C 应包含数学函数和数据结构。
    • 很好的解释,克里斯!刚遇到同样的问题,这为我解决了!谢谢!只有一件事,我必须为项目添加本地引用才能让我的工作。也许我做错了,但是勾选项目依赖项对我来说还不够。以防万一其他人碰到这个,添加对它的引用为我修复了它:)
    猜你喜欢
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 2014-03-14
    • 1970-01-01
    • 2014-08-17
    • 1970-01-01
    • 2011-05-17
    • 1970-01-01
    相关资源
    最近更新 更多