A certain engineer "COMPLEX"

ディープラーニング CNTK 雑談1 動かない api-ms-win-core-path-l1-1-0.dll がない

最新ソース (2016/03/13) を取得したら動かなかったのでその対応。

エラー


現象

Missing api-ms-win-core-path-l1-1-0.dll

DLLがないとのこと。
つい最近まではそんなことなかったのに。

原因

調べました。
どうも api-ms-win-core-path-l1-1-0.dll は Windows8 のみのdllのよう。
Windows 8 API Sets にありました。

今回は、PathCchRemoveFileSpec関数を使う修正が入ったため、Windows7で動作しなくなったようです。

修正

公式の対応を待つべきですが、暫定修正。
Source/Common/File.cpp


#include
#pragma comment(lib, "Pathcch.lib")
#endif


#include <Shlwapi.h>
#pragma comment(lib, "Shlwapi.lib")
#endif

に。


auto hr = PathCchRemoveFileSpec(&path[0], path.size());


auto hr = PathRemoveFileSpec(&path[0]);

に。

この2つの修正でエラーが出なくなります。
ただし、修正後の関数は deprecated ですし、バッファーオーバーランの危険があります。
あくまで暫定的な修正です。

Conclusion


Issue #224 で問題が上がってましたので、コメントしておきました。
公式が直してくれることを期待。

2016.03.26追記

私の修正が、PullRequest #237 としてマージされたため、現在は発生しません。

コメントを残す

メールアドレスが公開されることはありません。

%d人のブロガーが「いいね」をつけました。