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 が特定のファイルを読み込もうとするとエラーが発生します。errno
2 を与える (ENOENT
によるerrno.h
)。ファイルが存在し、DLL は相対パスを使用してそのファイルをロードしようとします。経由で開かれた最初のファイルではなくfopen
、他のファイルへのアクセスは機能しているようです。
ソースにアクセスできず、サーバー上でデバッグできず、DLL の開発者も問題を再現できません。
Visual Studio 2015 に更新した後、Windows Server で同様の問題が発生した人はいますか? もしそうなら、どのように解決しましたか?