0

CLR オプションを使用して混合モード (マネージドおよびアンマネージド) C++ DLL を作成しようとしていますが、AFX ライブラリを使用する必要があります。そこで、ファイル (GL/gl.h を使用) に "afxwin.h" を含めました。ただし、何をしてもコンパイルエラーが発生し、プロジェクト設定のすべてのオプションを試して修正しましたが、役に立ちません。

A. CLR オプションを使用してコンパイルすると、次のエラーが表示されます (afwin.h を含むファイルをコンパイルすると)。

1>c:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\atlmfc\include\afx.h(24): 致命的なエラー C1189: #error : MFC アプリケーションを /MD[d] でビルド中 (CRT dll バージョン) MFC 共有 dll バージョンが必要です。#define _AFXDLL を使用するか、/MD[d] を使用しないでください。

B. A のエラーに対処するために、stdafx.cpp で定義された _AFXDLL を使用してコンパイルするか、「共有 DLL で MFC を使用する」を有効にしてコンパイルすると、同じファイルに次のようなエラーが表示されます。

1> _WIN32_WINNT が定義されていません。デフォルトは _WIN32_WINNT_MAXVER (WinSDKVer.h を参照) 1>c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(46): エラー C2059: 構文エラー: '-' 1>c :\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(60): エラー C2143: 構文エラー: ';' がありません '}' の前に 1>c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(60): エラー C2238: ';' の前に予期しないトークンがあります 1>c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(61): エラー C2059: 構文エラー: 'public' 1>c:\program files (x86)\microsoft Visual Studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65): エラー C2059: 構文エラー: ')' 1>c:\program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65): エラー C2589: '-': '::' の右側にある不正なトークン 1>c: \program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(65): エラー C2059: 構文エラー: '::' 1>c:\program files (x86)\microsoft visual studio 10.0 \vc\atlmfc\include\afxanimationcontroller.h(67): エラー C2143: 構文エラー: ';' がありません 前 '{' \program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(67): エラー C2143: 構文エラー: ';' がありません 前 '{' \program files (x86)\microsoft visual studio 10.0\vc\atlmfc\include\afxanimationcontroller.h(67): エラー C2143: 構文エラー: ';' がありません 前 '{'

この問題を解決する方法についてのアイデアはありますか? VS2010を使用しています。

4

1 に答える 1

0

後で MFC オプションを「共有 DLL で MFC を使用する」に変更するのは簡単ではありません。他のオプションを変更する必要がある場合があります。

最も簡単な方法は、ウィザードを使用して新しいダミー MFC プロジェクトを作成し、2 つのプロジェクトのプロジェクト プロパティを比較することです。

CLRに関して、私にとってうまくいくのは、すべてのマネージC++コードを1つまたは2つのソースに配置し、プロジェクト全体ではなく、それらのソースに対してのみ/CLRをオンにすることです。

于 2014-03-26T08:39:30.643 に答える