Problem z kompilacją po dodaniu biblioteki marshall

0

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ą?

0

Znalazłem tamtą odpowiedź już dawno, to jednak nie pomagało.
Udało mi się jednak samemu znaleźć rozwiązanie - wystarczyło ze wszystkich plików .h klas pousuwać namespace'y (ponieważ miałem w każdym nagłówku klasy wklejone nejmspejsy z Formów). To rozwiązało problem :).

1 użytkowników online, w tym zalogowanych: 0, gości: 1