Cześć wszystkim.
Mam aplikację w Windows Forms, C++/CLI. Jest trochę klas, w jednym z okienek (nie głównym) chciałem dokonać konwersji z typu String^
do typu string
, z tego, co znalazłem, można do tego użyć metody marshall_as
, której przykład znaleźć można tutaj -> http://msdn.microsoft.com/en-us/library/bb384859%28v=vs.100%29.aspx .
Gdy chcę do swojego okienka, konkretne pliku utworz_postac.h
dołączyć bibliotekę oraz przestrzeń nazw zgodnie z przykładem z MSDN (poniżej zawartość początku tego pliku):
#pragma once
#include <msclr\marshal.h>
namespace Gra_RPG {
using namespace std;
using namespace System;
using namespace msclr::interop;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
Dostaję takie błędy kompilacji:
Error 3 error C2371: 'IDataObject' : redefinition; different basic types C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6157
Error 23 error C2371: 'IDropTarget' : redefinition; different basic types c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 3425
Error 11 error C2371: 'IMessageFilter' : redefinition; different basic types C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6557
Error 28 error C2371: 'IServiceProvider' : redefinition; different basic types c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 103
Error 1 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6143
Error 4 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6319
Error 5 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6332
Error 6 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6345
Error 7 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6381
Error 8 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6401
Error 12 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13488
Error 13 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13494
Error 14 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13499
Error 15 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13505
Error 16 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13510
Error 17 error C2872: 'IDataObject' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 13517
Error 18 error C2872: 'IDataObject' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 382
Error 19 error C2872: 'IDataObject' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 1165
Error 20 error C2872: 'IDataObject' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 1171
Error 24 error C2872: 'IDataObject' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 3429
Error 25 error C2872: 'IDataObject' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 3442
Error 21 error C2872: 'IDropTarget' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 3385
Error 9 error C2872: 'IMessageFilter' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6511
Error 26 error C2872: 'IServiceProvider' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 96
Error 29 error C2872: 'IServiceProvider' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 120
Error 30 error C2872: 'IServiceProvider' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 241
Error 31 error C2872: 'IServiceProvider' : ambiguous symbol c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 251
Error 32 error C2872: 'IServiceProvider' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.h 6459
Error 33 error C2872: 'IServiceProvider' : ambiguous symbol C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\urlmon.h 6461
Error 2 error C3699: '*' : cannot use this indirection on type 'IDataObject' C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6143
Error 22 error C3699: '*' : cannot use this indirection on type 'IDropTarget' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\oleidl.h 3385
Error 10 error C3699: '*' : cannot use this indirection on type 'IMessageFilter' C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\include\objidl.h 6511
Error 27 error C3699: '*' : cannot use this indirection on type 'IServiceProvider' c:\program files (x86)\microsoft sdks\windows\v7.0a\include\servprov.h 96
Zresztą, nawet bez tej przestrzeni nazw using namespace msclr::interop;
dostaję te same błędy. Dodam, że znajomy robi podobny program i u niego działa to bez zarzutów, używa tego samego środowiska - Visual Studio 2010.
Co może być przyczyną?