error lnk2022の解決方法がわかりません
Posted: 2011年8月23日(火) 12:50
高2で初心者です。よろしく願いします
VC++2010のwindowsFormでプログラムをつくっているのですが、テキストボックスのテキストを.txtファイルに出力するためにtextBoxのテキストの型であるSystem::Stringをstd::stringに変換するプログラムを入れたところ、エラーが出てきて意味もわからず詰んでしまっています。
解決策をお願いします。
//System::String→std::string
#include<string>
using namespace std;
using namespace System;
void MarshalString ( String ^ s, string& os ) {
using namespace Runtime::InteropServices;
const char* chars =
(const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
エラー
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_const_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000019)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std.basic_string<char,std::char_traits<char>,std::allocator<char> >): (0x0200003d)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std.basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >): (0x02000063)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000080)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_val<char,std::allocator<char> >): (0x02000081)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_val<wchar_t,std::allocator<wchar_t> >): (0x02000083)。
1>LINK : fatal error LNK1255: メタデータエラーのためにリンクに失敗しました。
VC++2010のwindowsFormでプログラムをつくっているのですが、テキストボックスのテキストを.txtファイルに出力するためにtextBoxのテキストの型であるSystem::Stringをstd::stringに変換するプログラムを入れたところ、エラーが出てきて意味もわからず詰んでしまっています。
解決策をお願いします。
//System::String→std::string
#include<string>
using namespace std;
using namespace System;
void MarshalString ( String ^ s, string& os ) {
using namespace Runtime::InteropServices;
const char* chars =
(const char*)(Marshal::StringToHGlobalAnsi(s)).ToPointer();
os = chars;
Marshal::FreeHGlobal(IntPtr((void*)chars));
}
エラー
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_const_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000019)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std.basic_string<char,std::char_traits<char>,std::allocator<char> >): (0x0200003d)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std.basic_string<wchar_t,std::char_traits<wchar_t>,std::allocator<wchar_t> >): (0x02000063)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_iterator<char,std::char_traits<char>,std::allocator<char> >): (0x02000080)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_val<char,std::allocator<char> >): (0x02000081)。
1>MSVCMRT.lib(locale0_implib.obj) : error LNK2022: メタデータの操作に失敗しました (8013118D) : 重複する型に、適合しないレイアウト情報があります (std._String_val<wchar_t,std::allocator<wchar_t> >): (0x02000083)。
1>LINK : fatal error LNK1255: メタデータエラーのためにリンクに失敗しました。