我做的一个软件,支持双击程序的数据文件打开主程序的功能,在App类里重载了OpenDocumentFile()函数,实现了双击数据文件打开程序的功能。但是,我的软件使用了加密狗,在没有加密狗的时候,在执行App类的Initinstance()函数时,会弹出一个MessageBox提示用户没有装加密狗的信息。这时候就出毛病了!如果我通过双击程序的数据文件来打开主程序的话,程序在弹出那个提示用户没装加密狗的对话框后。就出现了一个错误,说是什么“找不到文件'。(文件路径)。。'”,我想这可能和文档/视图结构有关,但我不知道双击数据文件的方式打开程序时,打开这个数据文件的最初的入口在哪里?请高手指教!!!!急+郁闷!!!!
CWinApp::RegisterShellFileTypes(true);来注册关联。SDK的,就自己往注册表里加值吧。打开注册表HKEY_CLASSES_ROOT,看一看.txt ,再看一看TextFile就全明白了.
重载CWinApp的OpenDocumentFile()
to handsomge(汗衫) :
应该不是用文件名做程序的命令行参数,因为我的对话框弹出的时候,还没有执行到ProcessShellCommand();但系统已经开始处理打开文件了。我又做了一个实验,将ProcessShellCommand()代码删除掉,程序仍可以打开文件。所以我想是系统自己找到OpenDocumentFile()来执行打开文件的。