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

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

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

Re[1]: DLL Import を使用して、引数の返却値をとりたい。


(過去ログ 19 を表示中)

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

■8060 / inTopicNo.1)  DLL Import を使用して、引数の返却値をとりたい。
  
□投稿者/ K.K (1回)-(2007/09/21(Fri) 18:28:16)

分類:[C#] 

2007/09/21(Fri) 18:29:01 編集(投稿者)
2007/09/21(Fri) 18:28:57 編集(投稿者)

こんにちわ。
DLL Import を使用して、文字列の受け渡しをしたいと思っています。
ソースはこんな感じです。

DLL側
extern "C" char PASCAL EXPORT DataRead(char *AllData[] , char *AllDataChar){
(中略)
AllDataChar = "abcdef";
AllData[0] = "ghi";
AllData[1] = "jkl";
}

呼び出し側
[DllImport("TEST_DLL.dll")]
private extern static int DataRead(System.Text.StringBuilder[] rtnChar, ref System.Text.StringBuilder rtnCharAll );
static void Main() {
StringBuilder rtnCharAll = new StringBuilder(1024);
StringBuilder[] rtnChar;
rtnChar = new StringBuilder[1024];
int iRtn = DataRead(rtnChar, ref rtnCharAll,10000);
}

しかし、この実行で、
rtnChar とrtnCharAll の中身はNULLの様なのですが、
何か抜けている処理、間違ってる記述等があるのでしょうか?
引用返信 編集キー/
■8061 / inTopicNo.2)  Re[1]: DLL Import を使用して、引数の返却値をとりたい。
□投稿者/ Jitta on the way (15回)-(2007/09/21(Fri) 18:32:52)
No8060 (K.K さん) に返信
> こんにちわ。
> DLL Import を使用して、文字列の受け渡しをしたいと思っています。
> ソースはこんな感じです。
>
> DLL側
> extern "C" char PASCAL EXPORT DataRead(char *AllData[] , char *AllDataChar){
> (中略)
> AllDataChar = "abcdef";
> AllData[0] = "ghi";
> AllData[1] = "jkl";
> }
>
> 呼び出し側
> [DllImport("TEST_DLL.dll")]
> private extern static int DataRead(System.Text.StringBuilder[] rtnChar, ref System.Text.StringBuilder rtnCharAll );
> static void Main() {
> StringBuilder rtnCharAll = new StringBuilder(1024);
> StringBuilder[] rtnChar;
> rtnChar = new StringBuilder[1024];
> int iRtn = DataRead(rtnChar, ref rtnCharAll,10000);
> }
>
> しかし、この実行で、
> rtnChar とrtnCharAll の中身はNULLの様なのですが、
> 何か抜けている処理、間違ってる記述等があるのでしょうか?

呼ばれる側は C++ で、呼ぶ側は C# ?

まず、C++ 同士で受け渡しができるか、確認してみましょう。多分、今のままでは出来ないと
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -