「System::String constructor」とかの絡みでいろいろ実験やっていたんですが、その時に遭遇した現象。Code はめちゃくちゃなのでその点ご了承ください。
ref class System::String
{
public:
String(signed char * buffer);
};
int main(array ^args)
{
char str[] = "あいうえお";
System::String ^ clrString = gcnew System::String(str);
return 0;
}
結果は。
error C2664: 'System::String::String' : 1 番目の引数を 'char [11]' から 'signed char *' に変換できません。
んで、こんな感じにしてみると。。。
signed char str[] = "あいうえお";
なんと。。。Microsoft(R) C/C++ Optimizing Compiler が落ちます。
問題の署名:
問題イベント名: APPCRASH
アプリケーション名: cl.exe
アプリケーションのバージョン: 15.0.30729.1
アプリケーションのタイムスタンプ: 488ef6ea
障害モジュールの名前: c1xx.dll
障害モジュールのバージョン: 15.0.30729.1
障害モジュールのタイムスタンプ: 488f296d
例外コード: c0000005
例外オフセット: 000f4432
OS バージョン: 6.0.6002.2.2.0.256.4
ロケール ID: 1041
Visual Studio 2008 Professional Edition SP1 にて確認。
Compiler って落ちていいのかな。。。