Watch your resource(注意你的资源文件)

在MS的MSDN上,对于GetModuleFileName输出的文件名有一些解释。
The string returned will use the same format that was specified when the module was loaded. Therefore, the path can be a long or short file name, and can use the prefix " //?/". For more information, see Naming a File.
如果没有正确的理解这个东西,我们在写程序的时候就可能会出错。
由于现在很多的程序对资源文件命名的时候,都是采用EXE名字后面加上一些修饰来完成,如加Res或是采用当前语言的ID,如果你的程序在被调用起来的时候,是采用DOS路径的方式调用,那么GetModuleFileName返回的也是一个短路径,加上现在一般EXE的名字都会大于8个,如果直接把EXE名字加上Res或当前语言的ID,LoadLibrary就会失败,因为LoadLibrary没有办法找到文件。
正确的处理方法是在GetModuleFileName返回的文件名,再次调用GetLongPathName函数转化成长文件名就可以处理正确了。
仔细分析所出现的问题,主要还是自己平时在查找相关函数的时候,没有仔细的去看一些MSDN的注意事项。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值