请教高人,我用vc6.0开发了一个简单的小程序。完成后我想把它打包成一个安装可执行文件。我用的打包程序是
Wise Installation System  9.02专业版。我的程序在执行的过程中要用到一些文件,而这些文件我提前放到了一个文件夹中,比如放到一个template文件夹中。我在程序中是用这样的语句来打开要用的文件,如下:m_grid.OpenFile(".\\template\\data_report.cel")当我打包的时候,我把这个template文件夹放到了release目录下,但是当我把打包好的程序再其他电脑安装完毕后,运行程序的时候发现实际上没有找到这个文件夹(而我的程序安装目录中有这个文件夹),试验了好多次,总是不行,我想可能是路径的表示有问题,望高人指点迷津,先再这里谢谢了。

解决方案 »

  1.   

    就是你的程序需要用到一些在程序目录下的template中的资源~~~ 那你做安装程序的时候要向目标计算机写入这些目录和资源文件`~~
    或者你可以使用 InstallShield 制作会更专业~~
    SetupBuilder 比较操作简单, WinRAR也可以打包自解压程序`~`
      

  2.   

    可能当前路径不一样, 用相对路径就会有问题建议在程序开始的地方重新设置当前路径 SetCurrentDirectoryGetProcWorkDir(szWorkDir);
    SetCurrentDirectoryA(szWorkDir);
    BOOL NSys::GetProcWorkDir(CHAR *pWorkDir)
    {
    CHAR szModFileName[MAX_PATH*2];
    DWORD dwRetVal;
    CHAR *pFind; dwRetVal = GetModuleFileNameA(NULL, szModFileName, sizeof(szModFileName));
    if(dwRetVal == 0 || dwRetVal >= sizeof(szModFileName))
    return FALSE; pFind = strrchr(szModFileName, '\\');
    if(pFind == NULL)
    return FALSE; pFind[0] = 0;
    if(pWorkDir)
    strcpy(pWorkDir, szModFileName); return TRUE;
    }
      

  3.   

    用GetModuleFileNameA动态得到完整路径就可以了
      

  4.   

    当我打包的时候,我把这个template文件夹放到了release目录下,但是当我把打包好的程序再其他电脑安装完毕后,运行程序的时候发现实际上没有找到这个文件夹(而我的程序安装目录中有这个文件夹),
    ------------------
               不明白,到底你的程序是在运行时出错还是安装时出错,
    1.首先确定你安装后的文件夹及文件和你打包时设置的路径是否一样
     如果不一样才是你打包的问题设置出错
    如果一样问题就在你程序打开文件时指定的文件路径有问题与打包无关
      

  5.   

    打个log出来看看也行啊。
    没用过wise这个版本。我用WISE FOR WINDOWS INSTALLER ,感觉够专业的了。