windows 控制台编程

domainajax 2010-01-29 07:33:51
请教个问题
windows 控制台编程
如果是查找本程序的所有模块,比如c:\windows\源代码\code.exe
TCHAR strfilename[n]
GetModuleFileName(hmodule[n],strfilename,sizeof(strfilename));
wcout<<strfilename<<endl;

怎么不显示c:\windows\源代码\code.exe这样的 只显示中文文件夹前面那块?
是不是不支持中文文件夹啊?
怎么才能运行成功呢?

新手还望多指教
...全文
110 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackyjkchen 2010-01-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 domainajax 的回复:]
恩,不是中文就可以显示成功!但是中文名的文件夹就不显示了?为什么呢?
[/Quote]
即便你用单字节的char [],中文都不会有问题,中文会出问题仅限STL,要指定编码
andson1111 2010-01-30
  • 打赏
  • 举报
回复

GetModuleFileName(hmodule[n],strfilename,sizeof(strfilename));
正确的应该为:
GetModuleFileName(hmodule[n],strfilename,sizeof(TCHAR)*n);
耍宝王 2010-01-29
  • 打赏
  • 举报
回复
GetModuleFileName(hmodule[n],strfilename,sizeof(strfilename));//问题出在sizeof(strfilename)上
//试试这个
#include <stdio.h>
#include <windows.h>

int main()
{
char buf[255];
GetModuleFileName(0, buf, 255);//0代表本程序
printf("%s\n", buf);
return 0;
}
traceless 2010-01-29
  • 打赏
  • 举报
回复
不可能吧 包含了wchar.h 没有

你把TCHAR 换成wchar_t试试,ms我遇到过TCHAR的问题
vercity 2010-01-29
  • 打赏
  • 举报
回复
帮顶 编码问题?中文转换的时候会变乱码貌似
domainajax 2010-01-29
  • 打赏
  • 举报
回复
恩,不是中文就可以显示成功!但是中文名的文件夹就不显示了?为什么呢?
one2zero 2010-01-29
  • 打赏
  • 举报
回复
貌似 是中文的 问题哦

你试试把中文改掉
clhposs 2010-01-29
  • 打赏
  • 举报
回复
这样可以得到程序所在路径和文件名,你尝试找到文件直接运行,不要用编译器中的运行

64,682

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧