2017-01-15 3 views
0

を指定した私のコードではありません。私の場合エラーにのNetsh:ファイルはここに

if (system("C:\WINDOWS\System32\netsh.exe interface ip set address name="Net" static 169.254.216.78 255.255.255.252 none >nul")) 
{ 
    printf("Error is %d.\n", GetLastError()); 
} 

2です。私はthisの記事を読んだことがありますが、そのエラーは実行可能ファイルに必要なDLLが利用できないことを示している可能性があります。しかし、それはどのように私は正確なDLLを見つけることができるとは言いませんでした。それはプロセスエクスプローラがそのために使用されることを指定しただけで、それを行う方法については言及していませんでした。私はしばらく検索して、私を助けるものを見つけることができませんでした。ロードしていない正確なDLLをデバッグして見つける方法を教えてください。前もって感謝します。

+0

これは間違った方法です。 APIを使用します。そしてFWIWでは、他のAPI呼び出しが何をしているのかわからないので、GetLastErrorを使用することはできません。 –

+0

'GetLastError'を呼び出す代わりに' errno'をチェックすることをお勧めしますか? – Rasty

+0

全くありません。問題のコードから意味のあるエラーコードを取得することはできません。 APIを使用する –

答えて

1

CおよびC++の文字列リテラルでは、いわゆるescape sequencesで特定の文字をエンコードできます。あなたのケースでは、誤ってエスケープシーケンスを追加しました。文字列リテラルに文字\を含めるには、\\を使用する必要があります。二重引用符を埋め込む場合は、\"と入力する必要があります。

system("C:\\WINDOWS\\System32\\netsh.exe interface ip set address name=\"Net\" " 
     "static 169.254.216.78 255.255.255.252 none >nul") 
+0

遅い応答のために申し訳ありません、時差のために、私もそれを試しましたが、それは同じエラーを返します – Rasty

+0

@Rasty:何度も指摘されたように、あなたが持っているエラーは無意味です。それ以外のこの提案された回答は、投稿したコードの目に見える唯一の問題に対処しています。本当の助けが必要な場合は、実際の質問を投稿してください([mcve]を含む)。 – IInspectable

関連する問題