- - PR -
[C#]shift-jis形式の引数を渡したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-09-29 08:18
こんにちは。最近C#を使い始めました。
C++で作成されたDLLの関数に対して、shift-jis形式の引数を渡したいのですが、どのようにしたらよいのかわかりません。 対象の関数は、もともとはCString型の引数を渡すように作られています。 すみませんが、ご教授のほどお願いします。 [ メッセージ編集済み 編集者: CAR 編集日時 2004-10-01 13:16 ] |
|
投稿日時: 2004-09-29 11:09
> shift-jis形式の引数
というのは、エンコードがshift-jis形式の文字列データということでしょうか。 それと対象の関数がCStringを引数にとるということは、 アンマネージコード(ネイティブ)なDLLからエクスポートされている関数で MFCのCStringオブジェクトを引数にとると言うことでしょうか? もしMFCのCStringを引数にとる関数ならば、この関数の仕様を再考するべきです。 void foo(LPCTSTR lpText); なら、C#から呼び出せると思いますが、 void foo(CString strText); だと難しいと思います。 |
|
投稿日時: 2004-10-01 11:52
chackさん。ありがとうございます!
>> shift-jis形式の引数 >というのは、エンコードがshift-jis形式の文字列データということでしょうか。 はい。テキストボックスに入力した文字列を、shift-jisエンコードで引数にしたいのです。テキストファイルへのshift-jis出力などはできているのですが、関数への渡し方が判りません。。。。 >それと対象の関数がCStringを引数にとるということは、 >アンマネージコード(ネイティブ)なDLLからエクスポートされている関数で はい。そうです。 >MFCのCStringオブジェクトを引数にとると言うことでしょうか? 対象のDLLを作成した人間が既にいないため、詳細はわからないのですが、String型の変数で渡してみたところ正常ではないものの、動作する文字もあるため、shift-jis形式で渡すことさえできれば何とかなりそうなのですが。 やっぱり難しいのでしょうか。。。困りました。 |
|
投稿日時: 2004-10-01 13:46
動作する文字もあるとのことなので、
文字列に対する既定のマーシャリング http://www.microsoft.com/japan/msdn/library/ja/cpguide/html/cpcondefaultmarshalingforstrings.asp MarshalAs 属性など調べてみてはいかがでしょうか。 |
1