- - PR -
LPCTSTRデータ型をVC#で受け取る
1|2|3
次のページへ»
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2004-05-14 14:48
こんにちは。
VC++6.0で作成したEXEからのLPCTSTRデータ型の引数を受け取るC#のDLLを作成しています。 C#ではLPCTSTRデータ型が使えないので、どう受け取れは良いのかわかりません。 LPCTSTRは、Winnt.hで #ifdef UNICODE typedef LPCWSTR LPCTSTR; #else typedef LPCSTR LPCTSTR; と宣言されていて、 LPCWSTRとLPCSTRは、それぞれ typedef CONST WCHAR *LPCWSTR; typedef LPCSTR LPCTSTR; と宣言されているということなので、 VC#でLPCTSTRのかわりにcharなどで受け取るようにしたのですが、 EXEの実行時にエラーが出てしまいます。 どなたか、C#でのLPCTSTRデータ型の引数の受け取り方を教えていただけないでしょうか。 | ||||
|
投稿日時: 2004-05-14 15:03
VC++ での、その関数のプロトタイプ宣言を見せてください。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-05-14 15:28
VC++6.0のEXEのソースはわかりません。
VC++6.0のEXEがVC++6.0のDLLの BOOL EditorCtrl::InitCtrl1(LPCTSTR Language,short Unit,LPCTSTR VersionInfo) { } といったかんじのメソッドに値を渡していることだけしか分かりません。 このようなソースをC#に書き換えたいのですが。 | ||||
|
投稿日時: 2004-05-14 16:32
その VC++ DLL と同じ仕様の DLL を C# で作りたいということですか? であれば無理です。 C# ではレガシ DLL を作ることは出来ません。 ただし、COM コンポーネントならば C# でも作成可能です。 _________________ // 渋木宏明 (Hiroaki SHIBUKI) // http://hidori.jp/ // Microsoft MVP for Visual C# // // @IT会議室 RSS 配信中: http://hidori.jp/rss/atmarkIT/ | ||||
|
投稿日時: 2004-05-14 17:19
一応、COMで作っているのですが、引数の型が違うことに引っかかっています。
引数の部分をどう書き換えたらよいのでしょうか? | ||||
|
投稿日時: 2004-05-14 17:35
諸農です。
COMのメソッドの引数であれば BSTRになればよいのでは?? 既存の呼び出し側も変える必要があるとは思いますが。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2004-05-17 09:36
[MarshalAs(UnmanagedType.???)] がヒントにならないかな?
| ||||
|
投稿日時: 2004-05-18 14:40
情報ありがとうございます。
返信が遅れて申し訳ありません。 いただいた情報を元に試したいと思います。 ありがとうございます。 |
1|2|3
次のページへ»