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

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

ログ内検索
  • キーワードを複数指定する場合は 半角スペース で区切ってください。
  • 検索条件は、(AND)=[A かつ B] (OR)=[A または B] となっています。
  • [返信]をクリックすると返信ページへ移動します。
キーワード/ 検索条件 /
検索範囲/ 強調表示/ ON (自動リンクOFF)
結果表示件数/ 記事No検索/ ON
大文字と小文字を区別する

No.93020 の関連記事表示

<< 0 >>
■93020  Re[6]: C#でC++DLLコマンドを実行
□投稿者/ サラリーマンZ -(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)に関しては、*付いていませんでした。
    勘違いでした。。。 混乱させて申し訳ありません。
    
記事No.92947 のレス /過去ログ161より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -