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

わんくま同盟

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

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

■93006 / 2階層)  C#でC++DLLコマンドを実行
□投稿者/ サラリーマンZ (5回)-(2019/11/13(Wed) 17:21:56)
Hongliangさんの回答を参考に下記プログラムを作成してみましたが、
うまく通信ができませんでした。↓
要因が今のところ分かりません。

//構造体の宣言
ConnectParameter CP = new ConnectParameter();

//DLL実行コマンドのインポート
[DllImport("ConnectionDLL.dll", CallingConvention = CallingConvention.Cdecl)]
extern static int Connect(ConnectParameter CP);

//CPの中身 入力
CP.Addr1 = "192.168.1.1";
CP.Addr2 = "192.168.1.2";
CP.Port1 = 9999;
CP.Port2 = 9999;

//通信コマンド実行
Connect(CP);



もともと、C++の実行プログラム(↓)でしたら問題なく動作するので
C#プログラム(↑)のところがおかしいような気がするのですが、
どなたか気付かる点、ありましたら教えてください。


	WSADATA wsadata;
	int     rc;

	rc = WSAStartup( 0x0101, &wsadata );
	if( rc != 0 )
	{ return; }

	sprintf_s( CP.Addr1, "%s", "192.168.1.1" );
	CP.Port1 = 9999;
	sprintf_s( CP.Addr2, "%s", "192.168.1.2" );
	CP.Port2 = 9999;

	//ここで入力するとDLLでのエラーを回避できる(DLL内ではコピーするだけ)
	try
	{
		LPHOSTENT PC_lpHost = gethostbyname(CP.Addr1 );
                CP.my.sin_family = AF_INET;    	 
		CP.my.sin_addr = *((LPIN_ADDR*PC_lpHost->h_addr_list);		        CP.my.sin_port = htons( CP.Port1 );

		LPHOSTENT MP_lpHost = gethostbyname(CP.Addr2 );
                CP.dst.sin_family = AF_INET;    	 
		CP.dst.sin_addr = *((LPIN_ADDR*PC_lpHost->h_addr_list);		        CP.dst.sin_port = htons( CP.Port2 );
	}
	catch(...)
	{
		MessageBox::Show( "エラー" );
		return;
	}

	//Open
	int Ans;

	try
	{
		Ans = Connect(CP);
	}
	catch(...)
	{
		Ans = -1;
	}

	//Status
	if( Ans == 0 ) 
	{ 
		MessageBox::Show( "接続 OK" );
	}
	else  
	{ 
		MessageBox::Show( "接続 NG" );
	}

編集キー/

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

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
  └ C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/13(Wed) 17:21) #93006 ←Now
    └ 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
          └ Re[6]: C#でC++DLLコマンドを実行 / サラリーマンZ (19/11/14(Thu) 23:36) #93020
            └ 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

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