C# と VB.NET の質問掲示板
ASP.NET、C++/CLI、Java 何でもどうぞ
C# と VB.NET の入門サイト
C#とCOM
(過去ログ 3 を表示中)
掲示板トップ
C# と VB.NET 入門
新規作成
利用方法/規約
トピック表示
ランキング
記事検索
過去ログ
[トピック内 5 記事 (1 - 5 表示)] <<
0
>>
■3372
/ inTopicNo.1)
C#とCOM
▼
■
□投稿者/ ヨン
二等兵(2回)-(2006/04/30(Sun) 15:47:10)
分類:[C#]
分類:[C#]
VS2003のC#とC++を使って下記のコードを実行すると
一般保護違反が出てしまって正常に実行することができません。
どのように解決したらいいのでしょうか?
(C#の方はCOMで、C++はクライアントです。)
[C#]
public int Test( object name)
{
byte [] byArray = (byte[])name; // ここでエラー
Console.WriteLine("Test, {0}!", byArray);
return 0;
}
[C++]
int main(int argc, char* argv[])
{
char sz[300];
ZeroMemory( sz, 300 );
sz[0] = 0x41;
sz[1] = 0x42;
sz[2] = 0x43;
sz[3] = 0x00;
cpi->Test(sz); // cpiはインターフェイス
}
以上よろしくお願いします。
0
引用返信
編集キー/
編集
■3373
/ inTopicNo.2)
Re[1]: C#とCOM
▲
▼
■
□投稿者/
中博俊
神(390回)-(2006/04/30(Sun) 17:39:19)
分類:[C#]
エラーって何?
それ以前にbyte[]で受ければすむだけでショー
0
引用返信
編集キー/
編集
■3375
/ inTopicNo.3)
Re[2]: C#とCOM
▲
▼
■
□投稿者/ Hongliang
一等兵(20回)-(2006/04/30(Sun) 18:42:25)
分類:[C#]
ただの byte[] だと SAFEARRAY として公開されると思います。
MarshalAs(UnamangedType.LPArray) 属性が必要かと。
ところで VS には詳しくないですが、tlbexp.exe は使っていないのでしょうか?
タイプライブラリを使えばどの型が要求されるのか簡単に分かると思いますが。
0
引用返信
編集キー/
編集
■3377
/ inTopicNo.4)
Re[3]: C#とCOM
▲
▼
■
□投稿者/ ヨン
二等兵(3回)-(2006/04/30(Sun) 21:13:44)
分類:[C#]
タイプライブラリを参照してみると
long Test( [in] VARIANT name );
となってます。
C#側でどう対応したらよいのでしょう?
0
引用返信
編集キー/
編集
■3378
/ inTopicNo.5)
Re[4]: C#とCOM
▲
▼
■
□投稿者/
中博俊
神(392回)-(2006/04/30(Sun) 21:40:56)
分類:[C#]
objectだからVARIANTになっているんでしょうねぇ。
0
引用返信
編集キー/
編集
トピック内ページ移動 / <<
0
>>
このトピックに書きこむ
過去ログには書き込み不可
管理者用
-
Child Tree
-