C ++应用程序:打开文件因语言失败?

时间:2013-02-04 20:02:42

标签: c++ file

我写了一个应用程序,它工作正常。至少在我居住的国家,德国。因为看起来来自英国的用户无法使用我的应用程序打开/查找文件。那可能吗?我是否需要使用不同的代码页或其他东西编译我的程序?这些是我的设置(配置属性,常规):

settings

用户说他在尝试使用我的应用程序打开文件时收到错误消息:“windows无法找到c / documents”

这是我用来打开文件的代码:

ZeroMemory( &ofn , sizeof( ofn));
ofn.lStructSize = sizeof ( ofn );
ofn.hwndOwner = NULL ;
ofn.lpstrFile = szFile ;
ofn.lpstrFile[0] = '\0';
ofn.nMaxFile = sizeof( szFile );
ofn.lpstrFilter = "All\0*.*\0Text\0*.*\0";
ofn.nFilterIndex =1;
ofn.lpstrFileTitle = NULL ;
ofn.nMaxFileTitle = 0 ;
ofn.lpstrInitialDir=NULL ;
ofn.Flags = OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST ;
GetOpenFileName( &ofn );

然后我用:

str=ofn.lpstrFile;
    size_t found;
  found=str.find_last_of("\\");
  samp=str.substr(0,found+1);

sprintf_s(filename,"%simg%u.jpg",samp.c_str(),xx);
            cvSaveImage(filename,framei);

3 个答案:

答案 0 :(得分:1)

听起来你假设有一个名为C/documents的文件夹,它可能在你的机器上,而不是在他的机器上。确切地说错误信息是什么,与语言或Sprache无关。

答案 1 :(得分:1)

用户是否在他的文件打开对话框中输入“c / documents”,而他真的想输入“C:\ Documents”或其他类似的内容?

在按下“打开”之前,“文件打开”对话框的屏幕截图会很有帮助。

答案 2 :(得分:1)

您提到在OpenCV等几个窗口打开后出现错误消息。可能发生的是一些外部应用程序被执行,它试图在文件打开对话框中选择的目录中打开一个文件。如果您没有正确引用文件名,则当文件名包含空格时,它将失败。 “C:\ Documents”是“C:\ Documents and settings \ Username \ My Documents \ File.ext”的第一个路径。因此,如果该用户正在使用该目录,并且您使用的是“C:\ Dokumente \ Datei.txt”,则不会收到错误,因为文件名中没有空格。但这只是猜测,你没有发布足够的代码来查看错误发生的位置。