私は英国に拠点を置くソフトウェアハウスで働いています。私たちは、最近64ビットWindowsに移植したプログラムを持っています。 64ビット版を作成すると同時に、Visual Studio 2003から2010に切り替えて、MFC(mfc100.dll)のコードページ版を引き続き使用しました。MFCプログラムが、名前に日本語の文字を含むファイルを開くときにクラッシュする
64ビット版のWindows 7を使用している日本のユーザーからバグレポートが届きました。名前に日本語の文字が含まれているファイル(またはフォルダ名に日本語の文字が含まれているファイル)対話的に開くと、プログラムは次のメッセージで失敗します。 "不適切な引数が検出されました"
新しい名前でファイルを保存しようとしても同様です。 Visual Studio 2003バージョンのプログラムは、期待どおりに動作します。
このプログラムは、MFCクラスのCFileDialogを使用してユーザーとWindowsのCopyFile()関数を使用して、ファイルをユーザー指定の場所にコピーします。
これを解決する方法についての手がかりはありますか?
あなたはUnicode版を使用していますか? – Flot2011
いいえ。変換するのは長期的な意図ですが、プログラムはWindows 95の時点からの日付であり、かなり大きいです。 –
Andrew、これまでに解決策を手に入れましたか? MBCSを使用している古いアプリでも同じことが起こっています –