09/03/31 13:22:24
DllImportでぐぐればいいんじゃね
982:デフォルトの名無しさん
09/03/31 13:23:49
>>980
ごめん、VB6のDLLかと思ってた
VB6はDLLはCOMになるから
そういうことならReflection使ってみては?
色々他にもあると思うけど
983:デフォルトの名無しさん
09/03/31 13:25:08
動的に呼び出しさせて何をさせようというんだ俺は・・・
疲れてんだな
984:デフォルトの名無しさん
09/03/31 17:19:48
>>977
2次元配列のマーシャリングってできたっけ?>識者
985:デフォルトの名無しさん
09/03/31 17:35:29
2次元配列はやったことないけど出来るはずだと思う
986:デフォルトの名無しさん
09/03/31 17:43:20
うお、今調べたら出来ないようだった、もうしわけない。
対策はいろいろあるそうだが、ストレートには出来ないそうだ。
987:デフォルトの名無しさん
09/03/31 18:18:17
とりあえずVB6の知識をひけらかすか
Public Type Struct1
Member1 As String 'BSTR
Member2 As Byte '1バイト
Member3 As Byte '1バイト
Member4(20) As String 'UTF16な文字が20文字
Member5(20, 1340) As Byte 'Option Base 0なら21×1341バイト
End Type
何の役にたつかはしらん
988:デフォルトの名無しさん
09/03/31 18:44:38
>>987
>UTF16な文字が20文字 はこれじゃね?
Member4 As String * 20
Member4(20) As String はStringの配列21 (Option base によるけど)
989:デフォルトの名無しさん
09/03/31 18:52:13
立てれなかったから誰か任せた
C#, C♯, C#相談室 Part52
------------
(#゚ー゚)つ < C#、.NETの話題はこちらでどうぞ。
前スレ
C#, C♯, C#相談室 Part51
スレリンク(tech板)
Visual C# 2008 Express Edition 日本語版
URLリンク(www.microsoft.com)
その他テンプレ>>2-5くらい
990:デフォルトの名無しさん
09/03/31 18:53:17
「ふらっと」と「VS2008」スレが新スレになってるので更新。
>>3>>5はそのままでおkかな?
-----
関連スレ
ふらっとC#,C♯,C#(初心者用) Part39
スレリンク(tech板)
Visual Studio 2008 Part 15
スレリンク(tech板)
WPF(XAML,XBAP,.NET3.5)GUIプログラミング Part3
スレリンク(tech板)
【VB.NET】LINQ友の会【C#, C♯, C#】
スレリンク(tech板)
C#,C#の宿題片付けます。
スレリンク(tech板)
991:デフォルトの名無しさん
09/03/31 18:53:59
>>987,988
参考になります。
Option Base は無指定ですので、0ですかね。
UnmanagedType.BStr をヒントにもう少しトライしてみたいと思います。
992:デフォルトの名無しさん
09/03/31 19:15:52
VB、C#混合になってしまうが
VB6で>>877の標準モジュールを含むプロジェクトを作って
VB.NETのアップグレードウイザードにかける。
やってみたがTODOが残るな・・・これもで手を入れないといけないようだ。
993:デフォルトの名無しさん
09/03/31 19:18:16
VB6もC#も中途半端な知識しか持っていないけどこんな感じではないのか、と質問していい?
unsafe struct Struct1
{
[MarshalAs(UnmanagedType.LPStr)]
string Member1;
byte Member2;
byte Member3;
[MarshalAs(SizeConst = 21)]
string Member4[];
fixed byte Member5[21 * 1340];
};
[DllImport("Library1.dll")]
static extern int ExpFunc1(ref Struct1 a_Struct1, int a_iNumber1, int a_iNumber2);
unsafeが嫌なら
[MarshalAs(UnmanagedType.U1, SizeConst = 21 * 1341)]
byte Member5[,];
としてMember5 = new byte[21, 1341];
994:デフォルトの名無しさん
09/03/31 22:01:27
>>988
そうだった
すっかり知識が抜け落ちてて愕然
995:977
09/04/01 09:48:39
UnmanagedType.LPStrとか
UnmanagedType.BStrとか
UnmanagedType.ByValArrayとか
いろいろ試しましたが、どうにもうまく行かないので、
もう諦めてVB6でラップDLL作ってそれをC#で参照して
使うことにしました。
VB6のデバッガでもう少し粘るといいのかもしれませんが
これで妥協しました。
いろいろありがとうございました。
996:デフォルトの名無しさん
09/04/01 09:55:35
MSDN見たか?まあ解決したならいいか
997:デフォルトの名無しさん
09/04/01 10:17:26
C#, C♯, C#相談室 Part52
スレリンク(tech板)
998:デフォルトの名無しさん
09/04/01 10:58:25
>>996
MSDNは 見まくり ですね。。
解決というか 逃げ ですけど、とりあえず
やれることはやれるようになったので。
VB6側の状況がよくわからずに
やみくもにやってもダメですね。
暇ができたら、ダミーの Library1.dll を作って
VB6から呼んでみて、中がどうなってるのか
確認してから再挑戦してみたいと思います。
999:デフォルトの名無しさん
09/04/01 12:33:10
MSDNよりPInvoke
1000:デフォルトの名無しさん
09/04/01 13:14:28
1000いただきまーす♪
1001:1001
Over 1000 Thread
このスレッドは1000を超えました。
もう書けないので、新しいスレッドを立ててくださいです。。。