我下了一个库类,用它时出现错误.CDib

来源:百度知道 编辑:UC知道 时间:2024/05/30 01:33:08
http://www.ecst.csuchico.edu/~murphy/gradinfo/332/cdib.cpp
中的BOOL CDib::AttachMapFile(const char* strPathname, BOOL bShare) // for reading
{
// if we open the same file twice, Windows treats it as 2 separate files
HANDLE hFile = ::CreateFile(strPathname, GENERIC_READ, bShare ? FILE_SHARE_READ : 0,
NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL); //错误提示>c:\users\b\documents\visual studio 2008\projects\visualcpp\ce06d\ce06d\cdib.cpp(59) : error C2664: 'CreateFileW' : cannot convert parameter 1 from 'const char *' to 'LPCWSTR'

视图中的代码:
void CCE06dView::OnLButtonDblClk(UINT nFlags, CPoint point)
{
CFileDialog dlg(TRUE,_T("bmp"),_T("*.bmp"));
if(dlg.DoModal()!=IDOK)
{
return;
}

#ifdef MEMORY_MAPPED_FILES

把::CreateFile改成::CreateFileA

楼上说的很对,主要是VS2008默认使用UNICODE进行编译,所以CreateFile映射为CreateFileW,所以如果需要在多字节和UNICODE下都能够编译的话,楼主可以改

CDib::AttachMapFile(const char* strPathname, BOOL bShare)



CDib::AttachMapFile(LPCTSTR strPathname, BOOL bShare)

这样当使用UNICODE编译时,LPCTSTR自动替换为const wchar*,即可以传给CreateFileW,楼主可以参考一下《Windows核心编程》

为什么我安装Windows Media Player后运行它出现一个框说出现了内部应用程序错误 我下了一个月影传说,可进去时总是出现错误:字体加载失败-LB12.FNT。怎么回事啊? 我下了一个月影传说,可进去时总是出现错误:字文件加载失败-LB12.FNT。怎么回事啊? 我下了一个跑跑卡丁车,可是在打开的时候老是说我安装时出现了一个错误,怎么回事呀??? 安装设备时,出现了一个错误 开机出现了一个错误 我的QQ上不起了,出现一个对话筐,说“在对一未命名文件进行访问下出现了一个不明错误”这是为 我的QQ上不去了,出现一个对话筐,说“在对一未命名文件进行访问下出现了一个不明错误” 为什么我的机子总是出现脚本错误对话框?怎么就让它不出现了? 我用vb和sql server2000作了一个系统,但是运行时,出现了如下错误?