GetOpenFileName在我机器上可以显示出来 在其他机器上没反映 都是XP
为什么呢

解决方案 »

  1.   

    char szPATH[MAX_PATH];
    char szOpenFileFilter[] = {'i','n','i',' ','F','i','l','e','s','(','*','.','i','n','i',')',0,'*','.','i','n','i',0,0};
    //////////
    RtlZeroMemory(&stOpenFile, sizeof(stOpenFile));
    stOpenFile.lpstrFile = szPATH;
    stOpenFile.lpstrFilter = szOpenFileFilter;
    stOpenFile.nMaxFile = MAX_PATH;
    stOpenFile.Flags = OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;
    stOpenFile.hwndOwner = 0;
    stOpenFile.lStructSize = sizeof(OPENFILENAME);
    GetOpenFileName(&stOpenFile);
      

  2.   

    我机器上可以 其他机器不行。哦 还有。
    我是把这个代码写到DLL注入到其他进程运行的。。前两天都可以用。结果游戏更新后  我机器上还是可以用 另外机器用不了了
    那个进程好象没有加载comdlg32.dll我用LoadLibrary加载进来的。
    但是以前直接就可以 今天遇到鬼了。。调试没发现任何问题。。主要是我机器上可以。我SHIT
      

  3.   

    CDERR_INITIALIZATION:公共对话框函数在初始化过程中失败。当没有足够内存时此错误出现。
    出现的这个错误 晕  请问怎么回事啊?
      

  4.   

    以前貌似碰到过类似的情况
    把那个openfilename的参数填的全一点
    应该就可以了
    有时一个模棱两可的参数会引起意想不到的问题
      

  5.   

    CommDlgExtendedEorror 函数功能:该函数返回一个对话框错误代码,此代码显示出在执行下列对话框函数时要出现的最近的错误:ChooseColor,GetOpenFileName,ChooseFont,GetSaveFileName,FindText,PrintDlg,ReplaceText,PageSetpDlg。 
      

  6.   

    依稀记得有个title的参数如果不填有时候对话框就出不来
    ^_^,事件太长了,现在手里没有代码和msdn
    其实网上也有很多这样的例子
    找个运行的不错的把赋值的部分粘改一下
    要不就详细研究一下各个参数的意义
    不过建议是算了,因为我以前找的时候貌似也没有看到太详细的文档说明
      

  7.   

    http://topic.csdn.net/t/20020527/09/755160.html
    貌似这里有原来人处理过的
    我手里也有个类,不过在移动硬盘上,没带