C++フォームアプリケーションを作成すると、あいまいなシンボルエラーが発生するようになりました。しかし、私はそれが以前からうまくコンパイルされていたが、何かを変更した可能性があるかどうかは不明です。Windows Formsアプリケーションで不明瞭なシンボルが多く表示される
なた自身がエラー:私のフォームは、これらのファイルのいずれにも含まれていないため
1>Application.cpp
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(4089): error C2872: 'IDropTarget': ambiguous symbol
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\oleidl.h(3508): note: could be 'IDropTarget'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(4089): note: or 'System::Windows::Forms::IDropTarget'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(6496): error C2872: 'IServiceProvider': ambiguous symbol
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\servprov.h(98): note: could be 'IServiceProvider'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(6496): note: or 'System::IServiceProvider'
1>main.cpp
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(4089): error C2872: 'IDropTarget': ambiguous symbol
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\oleidl.h(3508): note: could be 'IDropTarget'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(4089): note: or 'System::Windows::Forms::IDropTarget'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(6496): error C2872: 'IServiceProvider': ambiguous symbol
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\servprov.h(98): note: could be 'IServiceProvider'
1>c:\program files (x86)\windows kits\10\include\10.0.15063.0\um\ocidl.h(6496): note: or 'System::IServiceProvider'
は、私は、これは奇妙な見つけ、私はそれが名前空間に起因するものだと仮定します。私はちょうどこれが実際にどこから来ているのか分かりません。ここで
は情報のための私の形式である:私のフォームに関する
#include <Windows.h>
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
public ref class CFormController : public Form
{
public:
CFormController(void)
{
InitializeComponent();
}
~CFormController()
{
delete components;
}
System::ComponentModel::Container ^components;
void InitializeComponent(void)
{
this->components = gcnew System::ComponentModel::Container();
this->Size = System::Drawing::Size(300, 300);
this->Text = L"FormController";
this->Padding = System::Windows::Forms::Padding(0);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
}
};
唯一の他の情報は別のクラスです。 Thatsはそれを表示または非表示にするためにのみ使用されました。
私は「...名前空間を使用する」前に、その人で同様の問題は、Windowsのヘッダーが含まれていませんでしたが、私はあなたが見て、それはあなたが輸入している
** ** ** C++ではありません。これはC++/CLIです。それに応じてタグを付けてください。 –
私の謝罪、私は余分なタグが必要であることを知らなかった –
_extra_タグは必要ありませんでした。私が前に言及したように - これは** C++ではないので、C++タグは削除する必要があり、C++ - CLIタグで置き換えられました。 –