我需要一些关于如何设置我的项目的建议。我正在构建一个静态库,并想在我走得太远之前知道我使用预编译头文件的方式是否正确。
到目前为止,我的 stdafx 文件只包括(对于 DWORD 等类型)和(对于 std::string)。
我构建了一个名为 TestFuncs.cpp/h 的简单 cpp/header 组合
TestFuncs.cpp:
#include "stdafx.h"
using namespace std;
void MyFunc(DWORD a, string b) {
// irrelevant
}
测试函数.h
#pragma once
void MyFunc(DWORD a, std::string b);
此处的代码可以正确编译。我遇到的问题是,当我想在另一个项目中使用这个静态库时,我通常会执行 #include "path_to_my_static_lib_project/TestFuncs.h"
但是,这个问题基于 TestFuncs.h,DWORD 和字符串在当时都是未知的,因为它们是从 stdafx.h 文件定义的类型。
我想出的一种解决方案(我不知道这样做是否正确)只是在 #pragma once 之后将 stdafx.h 包含在 TestFuncs.h 的顶部。现在项目工作文件是否使用预编译头文件。
这是应该如何完成的,还是有正确的方法?
谢谢你。