VC++.NET2003にて開発を行っております。
String *a = abc;
となっているStringの中のabcと言う文字列を
charの配列に取り出したいのですがやり方がわかりません。
どなたかご教授くださいませ。
よろしくお願いします。
すいません。以後気をつけます。
ありがとうございます。
System.Text.Encoding.Default.GetChars()
の使い方がいまいちわかりません。
色々やってみているのですがうまくコンパイルが通りません。
もうすこし具体的にどうしたらよいか教えていただけませんでしょうか?
ちょっとそのまえに、
char*型の変数をどう扱いたいのですか?
MSDNのGetCharsメソッドのC++のサンプルは参考になりませんかねぇ。
http://www.microsoft.com/japan/msdn/library/default.asp?
url=/japan/msdn/library/ja/cpref/html/frlrfsystemtextencodingclassgetcharstopic
.asp
(↑おそらく複数行になるのでうまくつなげてください)
現在VC++.net 2003 にて開発を行っています。
アプリのなかで指定されたEXCELファイルに対して
データを追加して保存させようとしています。
下記のOpen()のファイル名を画面のテキストエリアから取得して、
一旦System.Stringに格納しています。
String *aaa ;
WorkbooksPtr pBooks = pXL->Workbooks;
_WorkbooksPtr pBook = pBooks->Open( aaa );
Open(aaa)で System::String __gc *から_bstr_tに変換できませんとエラーになってし
まいます。
_WorkbooksPtr pBook = pBooks->Open( c:\\aaa.xls );
と行うと実行可能であることから
String 内の文字列をchar*へ入れることが出来れば解決するのでは?と考えたためで
す。
>Open(aaa)で System::String __gc *から_bstr_tに変換できませんと
ならば char型配列 じゃないやん。
普通に _bstr_t(unicode文字列) にしてあげればいいのでは?
Stringから_bstr_tへ変換できるのでしょうか?
String *a = abc;
pBook = pBooks->Open( _bstr_t(a) );
とすると System::String __gc*から_bstr_tに変換できません。とエラーが出てしまい
ます。
pBook = pBooks->Open( System.Convert.ToChar( str ) );
はどう?
pBook = pBooks->Open( ( _bstr_t )System.Convert.ToChar( str ) );
は?
実行環境がないのでなんともいえないです。。。
>pBook = pBooks->Open( System.Convert.ToChar( str ) );
>はどう?
>pBook = pBooks->Open( ( _bstr_t )System.Convert.ToChar( str ) );
ごめん。ぜんぜんちがったっぽい。
StringクラスのメソッドやEncodingクラスなどいろいろしらべてみては。
pBook = pBooks->Open( str->ToCharArray() );
でよさそう。
というか、COMとの連携はStringクラスはいいのかなぁ。。。
(MFCとかのほうが楽そう)
pBook = pBooks->Open( pathName->ToCharArray() );
としてみたのですが、
Excel::Workbooks::Open 1番目の引数を'_wchar_t __gc[]'から
'_bstr_t'に変換できません。
という警告が相変わらず出てしまいます。
Marshal.StringToBSTR ?