問題タブ [mfc-networking]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mfc-networking - マシンに接続されている共有のリストを取得する
リモート マシンの複数の共有 (\\machineA\share1、\\machineA\share2....) と他のリモート マシンの共有に接続しているとします。
ここで私の質問は、特定のマシンに接続されている共有のみを見つける方法です。たとえば、machineA に接続されている共有のみです。
私はすでに WNetOpenEnum と WNetEnumResource に出会いました。しかし、これらは私のマシンに接続されているすべての共有を返すため非常に非効率的であり、結果から machineA に接続されている共有を検索する必要があります:(
共有を見つけることができる他の機能があるかどうかを知る必要があります。
私はVC++ 6.0に取り組んでいます。
編集:やあみんな、別の問題を抱えています。マシン上の共有に接続しようとするたびに、次のエラーが表示されます: 「参照されたアカウントは現在ロックアウトされており、ログオンできない可能性があります」
c++ - MFC::CHttpFile が「PUT」しないのはなぜですか?
私のコードは、ベンダーが提供する小さな Java アプリケーションと通信します。この Java アプリは、「マシン」の状態を制御するために使用される localhost:57000 に Web サーバーをセットアップします。この質問のために、「マシン」の状態を「オフ」から「オン」に変更する必要があります。これを実現するには、次の文字列をhttp://localhost:57000/settings.xmlの「マシン」に HTTP PUT する必要があります。
この Curl コマンドは完全に機能します。
curl -X PUT -H "Content-Type:application/xml" -d @settings.xml http://localhost:57000/settings.xml "
ローカル ファイル 'settings.xml' には、上記の xml 文字列が含まれています。
Curl が MFC の WININET クラスで行っていることを実行したいと考えています。次のコードは、カールとまったく同じことを行う必要があります。悲しいことに、localhost Web サーバーはコード 200 を返しますが、xml 文字列を無視します。私が見逃している小さなことは何ですか?
前もって感謝します。
visual-studio - Windows サービスで MFC を使用していますか?
Windows サービスの開発を開始しています。CString、CSocket、CArchive、CMemFile、CObject などの一部の MFC クラスにほとんど依存しない、独自のクラスを使用したいと考えています。MSDNは、Windows サービスで使用する MFC の部分について十分に注意する必要があると述べていますが、それを指定したり、発生する可能性のある問題について説明したりしません。
私の質問は次のとおりです。
- MFC のどの部分を使用できますか?
- MFC を使用すると、どのような問題が発生する可能性がありますか?
- Windows サービスのどの部分が MFC の使用に重要ですか?
- MFC for Windows サービスの代わりに ATL を使用することをお勧めしますか?
sockets - MFCCSocketキープアライブパケットが送信されない
リモートサーバーに接続しているときに、アプリケーションがTCP経由で切断を検出する方法を見つけようとしています。これを行うための明白な方法は、TCPキープアライブオプションを使用することだと思っていました。これはMFCC++アプリケーションであり、MySockクラスはCSocketから継承します。Connectの呼び出しの前後にSO_KEEPALIVEオプションを設定しようとしましたが、キープアライブパケットがwireshark経由で送信されるのを見たことがありません。接続で送信しているすべてのデータを正常に確認できるので、接続されて機能していることがわかります。
SetSockOptを呼び出す前にGetSockOptを呼び出したときのoptvalの値は0であり、呼び出した後の値は1です。接続後の値も1に設定されています。GetSockOptを呼び出す前にoptvalを0に設定して、何も変わっていないことを確認しました。GetまたはSetのいずれもエラーを返していません。どんな助けやアイデアもいただければ幸いです。私の現在の理論は、クライアント側の接続(私はリスニングソケットに接続しています)はキープアライブを送信しないというものです。キープアライブは、リスナーであった接続からのみ発生しますか?御時間ありがとうございます。
c# - PostMessage() からの MFC Windows メッセージを処理する C# イベントを作成する方法
WINSOCK を使用するマネージ C++ DLL があります。受信すると、PostMessage() を介してカスタム メッセージを CWnd * に送信します。これは、アンマネージ C++ から呼び出された場合に正常に機能します。ターゲット CWnd * は、次のコードを使用した構築後に C++ クラスに登録されます。
メッセージを CWnd に投稿するコードは次のとおりです *
現在、C# Windows フォーム アプリケーションからこの CUdpRetrySocket クラスを使用しています。質問:
C# Forms クラスから CWnd * を取得して C++ CUdpRetrySocket クラスに登録する方法
C# ウィンドウでイベントを作成して、このカスタム MFC スタイル メッセージをキャプチャするにはどうすればよいですか?
ウィンドウが最小化されている場合でも、パケットを処理するには C# アプリが必要です。C# フォーム ウィンドウは、最小化されている場合でもこれらのメッセージを受け取りますか?
これを行うより良い方法はありますか?