我用VC写了一个DLL,然后用OCX把这个DLL进行封装.在DLL里我写了个函数用来获取当前程序所在的目录:string getExeFileDir()
{
CHAR szFullPath[2048] = { 0 };
CHAR driver[MAX_PATH] = { 0 };
CHAR dir[MAX_PATH] = { 0 };
CHAR fname[MAX_PATH] = { 0 };
CHAR ext[MAX_PATH] = { 0 };
CHAR fullbuf[MAX_PATH] = { 0 }; GetModuleFileName(NULL, fullbuf, MAX_PATH);
// _splitpath(_pgmptr , driver , dir , fname , ext ); _makepath(szFullPath , driver , dir , NULL ,NULL) ;
string ret = szFullPath; ret += "\\";
return ret;
}
在调用OCX的时候,OCX就调用了DLL, DLL里调用了这个自己写的函数,获取到的结果非常奇怪.结果是这样的,中间竟然包括了一个 or :
c:\test\sample\bin\ or VB\bin\debug\导致我在DLL里创建文件失败..
到底要怎么才能正确获取当前EXE所在的目录?
{
CHAR szFullPath[2048] = { 0 };
CHAR driver[MAX_PATH] = { 0 };
CHAR dir[MAX_PATH] = { 0 };
CHAR fname[MAX_PATH] = { 0 };
CHAR ext[MAX_PATH] = { 0 };
CHAR fullbuf[MAX_PATH] = { 0 }; GetModuleFileName(NULL, fullbuf, MAX_PATH);
// _splitpath(_pgmptr , driver , dir , fname , ext ); _makepath(szFullPath , driver , dir , NULL ,NULL) ;
string ret = szFullPath; ret += "\\";
return ret;
}
在调用OCX的时候,OCX就调用了DLL, DLL里调用了这个自己写的函数,获取到的结果非常奇怪.结果是这样的,中间竟然包括了一个 or :
c:\test\sample\bin\ or VB\bin\debug\导致我在DLL里创建文件失败..
到底要怎么才能正确获取当前EXE所在的目录?
解决方案 »
- 求一个正则表达式
- 请教GetRecordSet建立的记录集中如何使用Find?
- 一般用vc做什么项目,最近打算用vc做毕业设计,不知道做什么好,谁能给个思路
- 任务管理器的内存使用只增不减,如何解决啊,在线等,谢谢!
- VC中利用MSMAPI32.OCX 组件编写邮件时遇到问题
- 寻找一张帖子
- 请问各位大虾,怎么把SYSTEMTIME结构转换成一个整数?
- 如何设置TreeView的扩展类型风格.
- 关于程序中运行另外一个程序的问题
- toolbar 工具条(类似AutoCAD R14)???
- mime 过滤器怎么在Read完成前显示内容到浏览器?
- VC如何给TEXTBOX赋值? int型如何转化程字符串??
那么用GetCurrentDirectory就获取的是他设置的那个目录
#include <Shlwapi.h> // Import Library: Shlwapi.lib...
{
TCHAR szPath[MAX_PATH];
GetModuleFileName (NULL, szPath, MAX_PATH);
PathRemoveFileSpec (szPath);
return szPath;
}
也可以试试
_get_pgmptr