プロジェクトの設定方法についてアドバイスが必要です。静的ライブラリを構築していますが、行き過ぎる前に、プリコンパイル済みヘッダーの使用方法が正しいかどうかを知りたいと思っています。
これまでのところ、私のstdafxファイルには(DWORDなどのタイプの場合)と(std :: stringの場合)が含まれています。
TestFuncs.cpp/hという単純なcpp/ヘッダーコンボを作成しました
TestFuncs.cpp:
#include "stdafx.h"
using namespace std;
void MyFunc(DWORD a, string b) {
// irrelevant
}
TestFuncs.h
#pragma once
void MyFunc(DWORD a, std::string b);
ここでのこのコードは正しくコンパイルされます。私が抱えている問題は、この静的ライブラリを別のプロジェクトで使用したい場合、通常は#include "path_to_my_static_lib_project/TestFuncs.h"を実行することです。
ただし、これに関する問題はTestFuncs.hに基づいており、DWORDと文字列はstdafx.hファイルから定義されたタイプであるため、その時点では不明です。
私が思いついた解決策の1つ(そうすることが正しいかどうかはわかりません)は、#pragmaの後にTestFuncs.hの先頭にstdafx.hを一度含めることです。これで、プロジェクトはプリコンパイル済みヘッダーを使用するかどうかに関係なくファイルを処理します。
これはどのように行われるべきですか、それともこれを行う適切な方法がありますか?
ありがとうございました。