0

Microsoft Visual Studio で開発された C++-DLL を使用する混合 Java/JRuby プロジェクトがあります。最近、この DLL のサプライヤが開発環境を Visual Studio 2015 professional にアップグレードしました。これには、新しいランタイム ライブラリ (vcredist_x86.exe) をマシン (Windows 7 で実行) にインストールする必要がありました。これを行った後、すべてが期待どおりに機能しました。

ただし、サーバー (Microsoft Windows Server 2003 R2 Standard Edition Service Pack 2) も使用して回帰テストを実行しています。新しいランタイム ライブラリをインストールすると、DLL が読み込まれます。しかし、プログラムを実行するとfopen、DLL が特定のファイルを読み込もうとするとエラーが発生します。errno2 を与える (ENOENTによるerrno.h)。ファイルが存在し、DLL は相対パスを使用してそのファイルをロードしようとします。経由で開かれた最初のファイルではなくfopen、他のファイルへのアクセスは機能しているようです。

ソースにアクセスできず、サーバー上でデバッグできず、DLL の開発者も問題を再現できません。

Visual Studio 2015 に更新した後、Windows Server で同様の問題が発生した人はいますか? もしそうなら、どのように解決しましたか?

4

1 に答える 1

0

DLL のサプライヤは、おそらく Server 2003 と互換性のないデフォルトのツールセット v140 を使用していました。テストに Server 2008 を使用している場合は、問題ないと思います。または、v140_xp ツールセットを使用できる場合は、問題ないと思います。そのオプションは次のとおりです: [構成プロパティ] -> [一般] -> [プラットフォーム ツールセット]

于 2016-02-23T14:09:00.093 に答える