大家好啊,我的软件做成安装包后,用桌面的快捷方式打不开软件,提示找不到数据库文件数据库是ACCESS。到软件的安装目录下直接运行执行文件,就可以。
我在DELPHI里也碰到这问题,不过delphi可以用SetCurrentDir函数来设置当前活动目录后,就可以了。 请问,VC用什么办法解决这问题呢?我总不能每次都到安装目录下找执行文件啊。是不是使用SetCurrentDirectory(),怎么用?用在那个地方就可以啊? 好心人帮帮忙,很着急啊。
我在DELPHI里也碰到这问题,不过delphi可以用SetCurrentDir函数来设置当前活动目录后,就可以了。 请问,VC用什么办法解决这问题呢?我总不能每次都到安装目录下找执行文件啊。是不是使用SetCurrentDirectory(),怎么用?用在那个地方就可以啊? 好心人帮帮忙,很着急啊。
解决方案 »
- tp link 黄金使用期 半年 ?
- com服务器对象如何检测异常退出的客户端对象
- 调用了OnCloseDocument是否还需要调用RemoveDocument
- TreeView双击,如何获得节点的HTREEITEM
- vc编译器死机
- 一个关于UDP传送大文件问题
- tcp和udp建立的socket可否互相发送(接收)数据?
- 救命呀,怎么总是报语法错误呀
- MFC的GroupBox如何实现背景透明
- [Win32]未使用WS_CHILD创建的"LISTBOX"为什么收不到WM_COMMAND消息?
- vc里怎么把一个日期转换成星期几?在bcb里有dayofweek(day)这个函数。
- ip组播发送和接收的filter如何编写
memset(szPath, 0, sizeof(szPath));
GetModuleFileName(NULL, szPath, _MAX_PATH);
char* p = strrchr(szPath, '\\');
if(p != NULL)
*(p+1) = '\0';
_chdir(szPath);
CString strWorkPath = szPath;
CString strProfile = strWorkPath + m_pszProfileName;
m_pszProfileName = _tcsdup(strProfile);
m_pszProfileName = _tcsdup(strProfile);
这两句怎么理解啊?这样就可以了啊?那用不用SetCurrentDirectory?
谢谢回答啊,希望能让我解决问题,100分将全部给你啊,再一次感谢你。
是有问题的啊,是数据库打不开,我是用INNO安装工具,做成的安装包,安装后,桌面的快捷方式不行。但到安装目录下运行就可以。这是个问题的啊,我VC不熟悉,DELPHI里面我知道怎么解决。
你好,你说的方法是可以的,设置后成功,问题是需要手工设置。如果是共享软件,不可能到每个用户那里帮他们手工设置一下吧?应该有别的可行办法啊。
之后的语句是为了得到ACCESS数据库的绝对路径
CString strProfile = strWorkPath + m_pszProfileName;
m_pszProfileName = _tcsdup(strProfile);这后面3句可以不要,我只是从我的程序段里面拷贝过来的.
memset(szPath, 0, sizeof(szPath));
GetModuleFileName(NULL, szPath, _MAX_PATH);
char* p = strrchr(szPath, '\\');
if(p != NULL)
*(p+1) = '\0';
_chdir(szPath);加入这个应该可以,不需要用SetCurrentDirectory.你试试看行不行?