文字列型に関連するDLLビルドエラー

3 C ++を使って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 ==========

I've tried adding #include at the top of defFile.def, but still get the same error. I'm sure this is something really simple.

0

2 答え

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

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

0
追加された
C ++を初めて使っているので、Ctrl + F7を使用したときにF7を使用してビルドしました。これはコンパイルされましたが、DLLをビルドしませんでした。私はdefFileと "Exclude from Project"を右クリックしなければなりませんでした。
追加された 著者 Alec,

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

0
追加された
@アレック:私の編集を参照してください。あなたはそれをコンパイルするつもりはない。
追加された 著者 Cat Plus Plus,
@Alec:.defファイルをコンパイルしないでください。ソースファイルではありません。
追加された 著者 Cat Plus Plus,
申し訳ありませんが、それは別のスタックオーバーフローの質問で示唆され、私の問題を解決するためにそれを使用しようとしていた。それが削除されたとき、同じエラーが表示されます。元の問題をそのまま反映するように質問を更新しました。
追加された 著者 Alec,
defFile.defをModule Definition File設定に追加することを意味しますか?私はそれをやった。コンパイルされたDLLファイルを作成するプロジェクトをコンパイル/ビルドする必要があるということを私が理解していますか?
追加された 著者 Alec,