2011-10-27 5 views
0

3 C++を使用してDLLを書き込む方法を学習しており、this tutorial videoの後に私を始めてください。私は正確に沿って続く、私のコードビーイング:DLLの文字列型に関連するビルドエラー

defFile.def:

LIBRARY "square" 
EXPORTS 
square 

funct.cpp:

double __stdcall square(double & x) 
{ 
    return x*x; 
} 

VSE 2010を使用して構築しようとすると、私は次のエラーを取得する:

1>------ Build started: Project: square, Configuration: Debug Win32 ------ 
1> defFile.def 
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C2143: syntax error : missing ';' before 'string' 
1>c:\documents and settings\~\my documents\visual studio 2010\projects\square\square\deffile.def(2): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int 
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ========== 

defFile.defの先頭に#include <string>を追加しようとしましたが、同じエラーが発生しました。または。私はこれが本当にシンプルなものだと確信しています。

答えて

0

プロジェクトに.defファイルを追加しました。それはソースコードファイルであるかのようにコンパイルされています。それはうまくいかない。

プロジェクトを右クリックし、[プロパティ]、[リンカ]、[入力]をクリックします。モジュール定義ファイルの設定を "defFile.def"に設定します。

+0

C++には新しく、Ctrl + F7を使用したときにF7を使用してビルドしました。これはコンパイルされましたが、DLLをビルドしませんでした。私はdefFileと "Exclude from Project"を右クリックしなければなりませんでした。 – Alec

0

定義ファイルはC++ではありません。そこからusing namespace std;を削除します。また、コンパイルする必要はありません。使用する場合は、プロジェクトのリンカー設定を変更する必要があります。

+0

申し訳ありません、それは別のスタックオーバーフローの質問で示唆され、私の問題を解決するためにそれを使用しようとしていた。それが削除されたとき、同じエラーが表示されます。元の問題をそのまま反映するように質問を更新しました。 – Alec

+0

@Alec:私の編集を参照してください。あなたはそれをコンパイルするつもりはない。 –

+0

defFile.defをModule Definition File設定に追加することを意味しますか?私はそれをやった。コンパイルされたDLLファイルを作成するプロジェクトをコンパイル/ビルドする必要があるということを私が理解していますか? – Alec

関連する問題