2009-05-07 9 views
0

私はVSで生成されたC++ Win32 DLLプロジェクトを持っています。これは、次のファイルがあります。VS 2008 Win32 DLLを1つのファイルに取り除く

stdafx.hを targetver.h myProject.h dllmain.cpp myProject.cpp stdafx.cpp

私はtargetver.hを削除、およびにdllmain.cppをマージすることができますmyProject.cpp。最も単純なファイル構造、できれば1つのファイルを得るために何をすればいいですか?このコードファイルを動的に生成し、Win32 DLLにビルドする必要があります。

答えて

1

最小限のファイル構造が必要な場合は、自分でファイルを作成するだけで済みます。空のプロジェクトを開始するか、すべてのファイルを削除します。ちょっと、フォルダを作成し、main.cppとcompile it from the command line with clと書いてください。

ほとんどのIDEは、あなたがしようとしているようなファイルを最小限に抑えようとしていますが、プロジェクトを作成するときには少し切り詰めることができます:stdafx。[h、cpp]はプリコンパイル済みヘッダーです。プロジェクトを作成します。

私は、コンパイルされた言語プロジェクトのソースコードの量を最小限に抑えるという価値は実際には感じられません。出力ファイル/ dllの数に意味のある影響を及ぼすことはなく、より多くのファイルを使用することは、コードの明快さに役立ちます。

0

IIRC、myProject.hおよびmyProject.cppには、エクスポートされたクラスの例が含まれています。それらは簡単に削除できます。

stdafx.cppおよびstdafx.hは、標準のプリコンパイル済みヘッダーファイル用に使用されます。プリコンパイルされたヘッダーを必要とする設定を無効にすると、これらのファイルは必要なくなります。

1

Andy氏によると、myProjectヘッダーファイルと実装ファイルもdllmain.cppとマージできます。しかし、これらのファイルを保持して実行時にvsprojファイルを作成するだけではどうですか?

1

また、空のプロジェクトを作成することもできます。

0

生成したファイルを既存のマルチファイルプロジェクトに#includeできます。そうすれば、複雑なプロジェクトのシェルを持つことができ、単純な関数のように小さなものだけを出力することができます。例えば

#include <system_stuff> 

void main() 
{ 
    Go(); 
} 

#include "generated_file_that_has_method_go.cpp" 

void other_code() 
{ 
} 
関連する問題