R
rodrigostrauss
I'm using Visual Studio 2005 Professional, and I didn't find the
STL.NET. This code:
#include "stdafx.h"
#include <vector>
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{
vector<String^> v;
// don't work either
//vector<String^>^ v = gcnew vector<String^>();
v.push_back("sdfsdfsd");
return 0;
}
just gives me this:
------ Build started: Project: cppcli1, Configuration: Debug Win32
------
Compiling...
cppcli1.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2752) :
error C4439: 'std::fill' : function definition with a managed type in
the signature must have a __clrcall calling convention
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1187) : see reference to function template
instantiation 'void std::fill<System::String^*,_Ty>(_FwdIt,_FwdIt,const
_Ty &)' being compiled
with
[
_Ty=System::String ^,
_FwdIt=System::String ^*
]
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1117) : while compiling class template member
function 'void
std::vector<_Ty>::_Insert_n(std::_Vector_iterator<_Ty,_Alloc>,unsigned
int,const _Ty &)'
with
[
_Ty=System::String ^,
_Alloc=std::allocator<System::String ^>
]
.\cppcli1.cpp(11) : see reference to class template
instantiation 'std::vector<_Ty>' being compiled
with
[
_Ty=System::String ^
]
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(3021) :
error C4439: 'stdext::_Unchecked_move_backward' : function definition
with a managed type in the signature must have a __clrcall calling
convention
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1200) : see reference to function template
instantiation '_BidIt2
stdext::_Unchecked_move_backward<System::String^*,System::String^*>(_BidIt1,_BidIt1,_BidIt2)'
being compiled
with
[
_BidIt2=System::String ^*,
_BidIt1=System::String ^*
]
Build Time 0:03
Build log was saved at
"file://c:\temp\code\cppcli1\cppcli1\Debug\BuildLog.htm"
cppcli1 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========
There's a C:\Program Files\Microsoft Visual Studio 8\VC\include\msclr
folder, but it has only few header, like auto_gcroot.h.
I've found some __CLRCALL_OR_CDECL macros before STL functions, and it
resolves to __clrcall if you're using /clr. But I didn't get it to work
even with just /clr (no pure or safe). Any ideas?
Rodrigo Strauss
STL.NET. This code:
#include "stdafx.h"
#include <vector>
using namespace System;
using namespace std;
int main(array<System::String ^> ^args)
{
vector<String^> v;
// don't work either
//vector<String^>^ v = gcnew vector<String^>();
v.push_back("sdfsdfsd");
return 0;
}
just gives me this:
------ Build started: Project: cppcli1, Configuration: Debug Win32
------
Compiling...
cppcli1.cpp
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(2752) :
error C4439: 'std::fill' : function definition with a managed type in
the signature must have a __clrcall calling convention
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1187) : see reference to function template
instantiation 'void std::fill<System::String^*,_Ty>(_FwdIt,_FwdIt,const
_Ty &)' being compiled
with
[
_Ty=System::String ^,
_FwdIt=System::String ^*
]
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1117) : while compiling class template member
function 'void
std::vector<_Ty>::_Insert_n(std::_Vector_iterator<_Ty,_Alloc>,unsigned
int,const _Ty &)'
with
[
_Ty=System::String ^,
_Alloc=std::allocator<System::String ^>
]
.\cppcli1.cpp(11) : see reference to class template
instantiation 'std::vector<_Ty>' being compiled
with
[
_Ty=System::String ^
]
C:\Program Files\Microsoft Visual Studio 8\VC\include\xutility(3021) :
error C4439: 'stdext::_Unchecked_move_backward' : function definition
with a managed type in the signature must have a __clrcall calling
convention
C:\Program Files\Microsoft Visual Studio
8\VC\include\vector(1200) : see reference to function template
instantiation '_BidIt2
stdext::_Unchecked_move_backward<System::String^*,System::String^*>(_BidIt1,_BidIt1,_BidIt2)'
being compiled
with
[
_BidIt2=System::String ^*,
_BidIt1=System::String ^*
]
Build Time 0:03
Build log was saved at
"file://c:\temp\code\cppcli1\cppcli1\Debug\BuildLog.htm"
cppcli1 - 2 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped
==========
There's a C:\Program Files\Microsoft Visual Studio 8\VC\include\msclr
folder, but it has only few header, like auto_gcroot.h.
I've found some __CLRCALL_OR_CDECL macros before STL functions, and it
resolves to __clrcall if you're using /clr. But I didn't get it to work
even with just /clr (no pure or safe). Any ideas?
Rodrigo Strauss