在VC8中,我用了:USES_CONVERSION;
Bitmap * m_bmpSurface = Bitmap::FromResource( AfxGetApp()->m_hInstance, A2W((LPCSTR)MAKEINTRESOURCE(IDB_BITMAP1)));
//???????????
if(!m_bmpSurface) {
AfxMessageBox(_T("fail to load bitmap"));
return;
}
跟踪程序后;程序进入到函数:
inline LPWSTR WINAPI AtlA2WHelper(__out_ecount(nChars) LPWSTR lpw, __in LPCSTR lpa, __in int nChars, __in UINT acp) throw()
{
ATLASSERT(lpa != NULL);
ATLASSERT(lpw != NULL);
if (lpw == NULL || lpa == NULL)
return NULL;
// verify that no illegal character present
// since lpw was allocated based on the size of lpa
// don't worry about the number of chars
lpw[0] = '\0';
??????????int ret = MultiByteToWideChar(acp, 0, lpa, -1, lpw, nChars);
if(ret == 0)
{
ATLASSERT(FALSE);
return NULL;
}
return lpw;
}
其中:lpa为空,从而产生错误
请教,怎么解决; 谢谢
Bitmap * m_bmpSurface = Bitmap::FromResource( AfxGetApp()->m_hInstance, A2W((LPCSTR)MAKEINTRESOURCE(IDB_BITMAP1)));
//???????????
if(!m_bmpSurface) {
AfxMessageBox(_T("fail to load bitmap"));
return;
}
跟踪程序后;程序进入到函数:
inline LPWSTR WINAPI AtlA2WHelper(__out_ecount(nChars) LPWSTR lpw, __in LPCSTR lpa, __in int nChars, __in UINT acp) throw()
{
ATLASSERT(lpa != NULL);
ATLASSERT(lpw != NULL);
if (lpw == NULL || lpa == NULL)
return NULL;
// verify that no illegal character present
// since lpw was allocated based on the size of lpa
// don't worry about the number of chars
lpw[0] = '\0';
??????????int ret = MultiByteToWideChar(acp, 0, lpa, -1, lpw, nChars);
if(ret == 0)
{
ATLASSERT(FALSE);
return NULL;
}
return lpw;
}
其中:lpa为空,从而产生错误
请教,怎么解决; 谢谢
解决方案 »
- invalidate!=最小化+最大化?
- vc对单文档拆分窗口后如何建立一个公共的滚动条
- VS2005简单配置问题
- ListCtrl的SetState无效!
- 我做的類似VC++的界面,現在我想把它改成將下面的信息窗口直接不要顯示在整個下面,而是在右邊窗口區域的下面??左邊直接就為一個樹列
- 帮我看看这个打印a[128]的植为什么是-128?
- VC中控制台程序用什么函数清屏?
- 怎样得到系统中有新的应用程序或进程启动的消息呢?
- 为什么我不能编译realse版本?
- 这个问题实在是.........................................!!!
- 高手帮忙解决!急!
- 求类似于MSN的界面源码
Bitmap *m_bmpSurface = Bitmap::FromResource( AfxGetApp()->m_hInstance, (WCHAR *)(LPCTSTR)MAKEINTRESOURCE(IDB_BITMAP1));m_bmpSurface 是空的,好象就是找不到这个资源:IDB_BITMAP1谁帮忙解答一下,不胜感激
那就奇怪了
VC8中MAKEINTRESOURCE返回LPTSTR,所以无须转换!
Bitmap *m_bmpSurface = Bitmap::FromResource( AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
Bitmap *m_bmpSurface = Bitmap::FromResource( AfxGetApp()->m_hInstance, MAKEINTRESOURCE(IDB_BITMAP1));
MSDN中有:
Res
This method works only with bitmaps that are named resources in a DLL.有人在VC8 中存取过自己的资源的吗,上面的REMARKS 是什么意思