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

わんくま同盟

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

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

■93020 / 6階層)  C#でC++DLLコマンドを実行
□投稿者/ サラリーマンZ (7回)-(2019/11/14(Thu) 23:36:23)
Hongliangさん、ご丁寧に回答頂き誠に有難う御座います。
C++ DLL作成者に問い合わせたところ、コマンド実行のために my / dst の指定は必要とのことで、
Hongliangさんご察しの通りでした。

struct sockaddr_inの定義コード有難うございます。
参考にさせていただきます。 ↓下記のようなコードでとりあえず試してみます。

        //ConnectParameterの定義
        [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi)]
        public struct ConnectParameter
        {
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
            public string Addr1;
            public int Port1;
            [MarshalAs(UnmanagedType.ByValTStr, SizeConst = 32)]
            public string Addr2;
            public int Port2;
        }

        //sockaddr_inの定義
        struct sockaddr_in
        {
            public ushort sin_family, sin_port;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 4)]
            public byte[] sin_addr;
            [MarshalAs(UnmanagedType.ByValArray, SizeConst = 8)]
            public byte[] sin_zero;
        }

    //コマンド実行
        private void button1_Click(object sender, EventArgs e)
        {
                CP.Addr1 = "192.168.1.2";
                CP.Port1 = 9999;
                CP.Addr2 = "192.168.1.1";
                CP.Port2 = 9999;

                my.sin_addr = IPAddress.Parse(CP.Addr1).GetAddressBytes();
                dst.sin_addr = IPAddress.Parse(CP.Addr2).GetAddressBytes();

                Connect(CP);
        }

struct sockaddr_in の中身としてsin_family / sin_port / sin_addr / sin_zero とありますが、
sin_addr だけでなく、sin_family や sin_port も指定してあげないと
うまく動作しない感じでしょうか。。。

>>Connect(struct ConnectParameter CP);
> 結局
>>C++ のところ、*が付いていました。
> は勘違いということで良いんですかね?

Connect(struct ConnectParameter CP)に関しては、*付いていませんでした。
勘違いでした。。。 混乱させて申し訳ありません。

編集キー/

前の記事(元になった記事) 次の記事(この記事の返信)
←Re[5]: C#でC++DLLコマンドを実行 /Hongliang →Re[7]: C#でC++DLLコマンドを実行 /Azulean
 
上記関連ツリー

C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/11(Mon) 17:23) #92947
Re[1]: C#でC++DLLコマンドを実行 / Hongliang (19/11/11(Mon) 17:37) #92948
  ├ Re[2]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/12(Tue) 12:23) #92971
  └ Re[2]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/13(Wed) 17:21) #93006
    └ Re[3]: C#でC++DLLコマンドを実行 / Hongliang (19/11/13(Wed) 19:16) #93010
      └ Re[4]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/14(Thu) 08:59) #93014
        └ Re[5]: C#でC++DLLコマンドを実行 / Hongliang (19/11/14(Thu) 10:06) #93015
          └ C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/14(Thu) 23:36) #93020 ←Now
            └ Re[7]: C#でC++DLLコマンドを実行 / Azulean (19/11/15(Fri) 06:29) #93021
              └ Re[8]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/27(Wed) 22:32) #93202
                └ Re[9]: C#でC++DLLコマンドを実行 / Azulean (19/11/27(Wed) 22:59) #93204
                  └ Re[10]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/28(Thu) 20:44) #93233
                    └ Re[11]: C#でC++DLLコマンドを実行 / Azulean (19/11/28(Thu) 22:07) #93235
                      └ Re[12]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/12/01(Sun) 16:26) #93268
                        └ Re[13]: C#でC++DLLコマンドを実行 / Azulean (19/12/01(Sun) 16:57) #93269
                          └ Re[14]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/12/01(Sun) 17:06) #93270

上記ツリーを一括表示 / 上記ツリーをトピック表示
 
上記の記事へ返信