C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[2]: Visual C++ 2008 の marshal_as


(過去ログ 70 を表示中)

[トピック内 3 記事 (1 - 3 表示)]  << 0 >>

■40600 / inTopicNo.1)  Visual C++ 2008 の marshal_as
  
□投稿者/ dogatana (44回)-(2009/08/29(Sat) 08:40:09)

分類:[C++/CLI] 

こんにちは。

C++/CLIを齧り始めまして、早速 System::String からC++の型(char *, 
std::string)への変換に迫られました。
ネット上の情報、MSDNを参照して、一応はできるようになりましたが、どう
も Visual C++ 2008で追加された marshal_as を使うのがハンドルの処理が
出てこず、一番楽そうに思えます。
しかしながら手元の環境(Express Edition)にヘッダファイルが見当たらず、
使用することができません。ひょっとしてStandard Edition以上でないと使
えないとかなのでしょうか?

Program Filsの下 include ディレクトリは次のようになっていて、
msclr/marshal.h がありません。。

C:\Program Files\Microsoft Visual Studio 9.0\vc\include\msclr のディレクトリ
2009/05/02  09:24    <DIR>          .
2009/05/02  09:24    <DIR>          ..
2005/05/03  00:00               585 all.h
2005/12/07  16:19           125,137 appdomain.h
2007/02/21  11:00             6,128 auto_gcroot.h
2005/03/30  02:15             4,098 auto_handle.h
2009/05/02  09:24    <DIR>          com
2005/03/30  02:15             2,504 event.h
2007/02/21  11:00             4,166 gcroot.h
2007/02/27  17:24             8,412 lock.h
2005/03/30  02:15             1,257 safebool.h
               8 個のファイル             152,287 バイト
               3 個のディレクトリ  25,927,737,344 バイトの空き領域

引用返信 編集キー/
■40601 / inTopicNo.2)  Re[1]: Visual C++ 2008 の marshal_as
□投稿者/ やじゅ (1288回)-(2009/08/29(Sat) 09:16:12)
やじゅ さんの Web サイト
No40600 (dogatana さん) に返信
> しかしながら手元の環境(Express Edition)にヘッダファイルが見当たらず、
> 使用することができません。ひょっとしてStandard Edition以上でないと使
> えないとかなのでしょうか?
> msclr/marshal.h がありません。。

「msclr/marshal.h Express Edition」で検索してみたところ、
Visual C++ 2008 Express Editionでは、marshal.h が無いようです。別の方法を使うのかな
http://www.codeguru.com/forum/showthread.php?t=468408

引用返信 編集キー/
■40603 / inTopicNo.3)  Re[2]: Visual C++ 2008 の marshal_as
□投稿者/ dogatana (46回)-(2009/08/29(Sat) 14:10:31)
返答ありがとうございます。

No40601 (やじゅ さん) に返信

> 「msclr/marshal.h Express Edition」で検索してみたところ、
> Visual C++ 2008 Express Editionでは、marshal.h が無いようです。別の方法を使うのかな
> http://www.codeguru.com/forum/showthread.php?t=468408

やっぱりないんですね。。

変換自体は
Marshal::StringToHGlobalAnsi()
Marshal::FreeHGlobal();
でやれて、これだとVC++2008でなくてもOKなんですが、ちょっと面倒くさいなと。。


解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -