一、MFC中获取可执行文件的路径方法.
GetModuleFileName();
The GetModuleFileNamefunction retrieves the fully qualified path for the specified module.
检索到包含可执行文件所在的全目录。
如果hModule=NULL,则GetModuleFileName 返回当前Module的路径。
lpFilename,返回Module全路径。
nSize 指示buffer的大小。
常用方法,自定义一个函数实现:
二、VC6使用STL时很多C4786警告的消除方法。
下面的代码编译时报告了一大堆4786 编译警告,:
代码如下:
再比如, map<string,int> myMap 。
Answer:
这个警告的意思就是说,list<string> 的构造生成的 Symbols 太长了,超过了255个字符。
你其实不用理会这个警告,因为它只会影响到 Debugger ,而不会影响到真实的代码。实际上,如果你编译一个 Release 版本的话,就会发现这个警告已经完全消失了。
消除这个警告可能有一点难度,因为这属于预处理器的行为。
一般建议你这么做:
注意这个 pragma 声明一定要放在 stl 头文件之前!否则不起作用!
这个 pragma 也不是总能够发生效力的!有时候,并不能消除所有的这种 C4786 警告。
三. VC中打开txt文件呈现如下的显示的方法:
方法:
ShellExecute
Performsan operation on a specified file. 对指定的文件进行操作。
HINSTANCE ShellExecute(
lpOperation
,指向,涉及要执行的动作的以’\0’结束的字符串。
Verb | 描述 |
edit | 执行、打开一个文本文件,如果lpFile非文本文件,函数会出错。 |
explore | Explorers由lpFile指向的文件夹。 |
find | 从指定的目录开始查找。 |
open | 打开由lpFile参数指定的文件,这个文件可以是可执行的文件、文本文件、文件夹。 |
打印lpFile指定的文档,如果lpFile不是文本文件,函数会调用失败。 |
lpFile
指定一个预操作的文件名。
lpParameters
:
lpOperation
参数有关,且如果lpFile指定了一个文档名,该参数为NULL。
LpDirectory
:
指向一个’\0’结束的字符串,该字符串指定了缺省的路径。
nShowCmd: 指示如何显示,即显示方式。其中SW_SHOWNORMAL。激活并显示一个窗口,如果窗口最小化或者最大化,窗口会存储其初始打开的大小和位置,下一次打开时会显示上一次打开的方式。当第一次显示窗口的时候,需要制定该flag。
正确的执行方式如下:
ShellExecute(handle, "open",path_to_folder, NULL, NULL, SW_SHOWNORMAL);
这只是近期遇到的一些小问题,后期会做内容扩充,发现更多问题及问题的解决方法,期待大家的关注!希望给大家以帮助!