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

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

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

No.93006 の関連記事表示

<< 0 >>
■93006  Re[2]: C#でC++DLLコマンドを実行
□投稿者/ サラリーマンZ -(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" );
    	}
記事No.92947 のレス /過去ログ161より / 関連記事表示
削除チェック/



<< 0 >>

パスワード/

- Child Tree -