在c+中使用std::string+;对于非托管c#dll 我试图为C++提供一个用于客户端提供的C++ SDL的非托管DLL包。此SDK使用std::string和std::wstring变量。我发现很难/不可能使用像string和wst

在c+中使用std::string+;对于非托管c#dll 我试图为C++提供一个用于客户端提供的C++ SDL的非托管DLL包。此SDK使用std::string和std::wstring变量。我发现很难/不可能使用像string和wst,c#,c++,dll,stl,wrapper,C#,C++,Dll,Stl,Wrapper,在c+中使用std::string+;对于非托管c#dll 我试图为C++提供一个用于客户端提供的C++ SDL的非托管DLL包。此SDK使用std::string和std::wstring变量。我发现很难/不可能使用像string和wstring这样的STL变量,但这是我最后的选择。我真的希望有人能告诉我一个可能的方法来构建一个C++方法的C+YDL包装器,它使用STD::String和STD::WString。P> > p>您尝试将 STD::String :Stry^ <

在c+中使用std::string+;对于非托管c#dll
<>我试图为C++提供一个用于客户端提供的C++ SDL的非托管DLL包。此SDK使用std::string和std::wstring变量。我发现很难/不可能使用像string和wstring这样的STL变量,但这是我最后的选择。我真的希望有人能告诉我一个可能的方法来构建一个C++方法的C+YDL包装器,它使用STD::String和STD::WString。P> > p>您尝试将<代码> STD::String :Stry^ < /C> >如

> P>您是否尝试将<代码> STD::String 到系统::Stry^ < /C> >在

中,C++中很难,它只能在使用完全相同的C++编译程序时使用完全相同的编译设置。只有当您拥有源代码或提供多个构建的高度规范的软件供应商时,它才在实践中起作用。在C语言中,不可能创建/销毁/解释这些C++模板类对象。你需要一个C++/CLI包装器,一定要与图书馆供应商合作,以获得你需要的东西。我正在使用精确的C++编译器,所以幸运的是这不是问题。但是,对于未来的规划来说,使用c++/cli可能是一个好主意。似乎您错过了这条消息,需要使用c++/cli。没有计划,未来就在今天。不要忽略完全相同的生成设置要求,调试和发布生成设置之间的差异已经足以损坏内存。我知道生成设置必须相同,但我确信它们在这一点上是相同的。我想说的是,除了我确定这不是构建设置的错之外,最好使用C++/CLI而不是非托管包装器,因为我不能确定将来也会是这样。Hans Passant,我认为你是对的,所以你可以将你的答案作为答案发送,这样我就可以标记它。也许有一些方法可以实现这一点,但我不认为我走的是正确的道路,我将尝试C++/CLI方法。感谢它在C++中是很难的,它只能在使用完全相同的C++编译器时使用完全相同的编译设置。只有当您拥有源代码或提供多个构建的高度规范的软件供应商时,它才在实践中起作用。在C语言中,不可能创建/销毁/解释这些C++模板类对象。你需要一个C++/CLI包装器,一定要与图书馆供应商合作,以获得你需要的东西。我正在使用精确的C++编译器,所以幸运的是这不是问题。但是,对于未来的规划来说,使用c++/cli可能是一个好主意。似乎您错过了这条消息,需要使用c++/cli。没有计划,未来就在今天。不要忽略完全相同的生成设置要求,调试和发布生成设置之间的差异已经足以损坏内存。我知道生成设置必须相同,但我确信它们在这一点上是相同的。我想说的是,除了我确定这不是构建设置的错之外,最好使用C++/CLI而不是非托管包装器,因为我不能确定将来也会是这样。Hans Passant,我认为你是对的,所以你可以将你的答案作为答案发送,这样我就可以标记它。也许有一些方法可以实现这一点,但我不认为我走的是正确的道路,我将尝试C++/CLI方法。感谢muchI,我很想这么做,但是SDK已经使用了我无法更改的使用std::string的方法。我很想这样做,但是SDK已经使用了我无法更改的使用std::string的方法