dll をビルドするためにしばらくの間 VS10 を使用してきましたが、Eclipse でも同様に実行できることを示したいと思います。
Eclipse での明らかな症状は、リンカがイライラして失敗することです。
LINK : fatal error LNK1104: cannot open file 'C:\Program.obj'
これはおそらく、何かが C:\Program Files(x86)... 引数のスペースを保護していないためであり、そのうちのいくつかを持っています。
コマンドをCMDプロンプトにコピーし、スペースを含む引数を手動で引用符で囲むことでコマンドを実行できます。そのため、Eclipseがこれらの引数を引用符で囲んでいないことが99.9%確実です。作業コマンドは次のとおりです。
link /DLL /debug /nologo /OUT:PIDExternalController.dll main.obj C:\Opt\Bladed\Main\Test\Code\ExternalController\Debug\ExternalControllerApi.lib "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\delayimp.lib" "C:\Program Files (x86)\Microsoft SDKs\Windows\v7.0A\Lib\Kernel32.Lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\oldnames.lib" "C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\lib\msvcrt.lib"
コマンドの Eclipse のエコーは同じですが、引用符がありません (ただし、コンパイラーのエコーは実際に使用する引用符を表示しなかったため、これは必ずしも何も証明しません)。
Eclipse がリンカーへの呼び出しを引用符で囲むようにするためのオプションや正当なメカニズムを見つけることができませんが、これは一般的な要件である必要があります。明らかな何かを見逃しましたか?