在COM中有这样一个函数,如下:bool ExportTool::CopyToClipBoard(CString& inXml, int type)
{
CDC dc;
dc.Attach(::GetDC(NULL));
CString strFileName = _T("c:\\temp\\export.txt"); CDC memDC;
CBitmap memBitmap;
memDC.CreateCompatibleDC(NULL);
CRect rc(0, 0, 782, 530);
memBitmap.CreateCompatibleBitmap(&dc,rc.Width(),rc.Height());
memDC.SelectObject(&memBitmap);
CBrush brush(0xFFFFFF);
memDC.FillRect(&rc, &brush); CLog::Log(strFileName,_T("1"),_T("CDC and CBitmap Ready!"));
DrawingXml oDrawingXml;
oDrawingXml.SetMedium(memDC.m_hDC);
CLog::Log(strFileName,_T("2"),_T("Enter Object of DrawingXml"));
if (type == DrawingXml::eFromStream)
{
if (!oDrawingXml.Draw(inXml, DrawingXml::eFromStream))
{
return false;
}
}
else
{
if (!oDrawingXml.Draw(inXml, DrawingXml::eFromFile))
{
return false;
}
}
CLog::Log(strFileName,_T("10"),_T("Open Clipboard"));
::OpenClipboard(NULL);
::EmptyClipboard();
CLog::Log(strFileName,_T("11"),_T("Set memBitmap.m_hObject to Clipboard"));
::SetClipboardData(CF_BITMAP,memBitmap.m_hObject);
::CloseClipboard();
CLog::Log(strFileName,_T("12"),_T("Close Clipboard"));
return true;
}作用是基于xml先创建一个位图,然后拷贝到clipboard。
现在的问题是,在大多数的电脑上是好。唯独有一台客户的电脑,在运行这个功能时,失败了。
请问各位,是客户电脑缺少东西,还是代码写错了。因为在这个方法里面的,所有log都没有打出来。请问是不是出现了什么异常需要去捕获?谢谢!
{
CDC dc;
dc.Attach(::GetDC(NULL));
CString strFileName = _T("c:\\temp\\export.txt"); CDC memDC;
CBitmap memBitmap;
memDC.CreateCompatibleDC(NULL);
CRect rc(0, 0, 782, 530);
memBitmap.CreateCompatibleBitmap(&dc,rc.Width(),rc.Height());
memDC.SelectObject(&memBitmap);
CBrush brush(0xFFFFFF);
memDC.FillRect(&rc, &brush); CLog::Log(strFileName,_T("1"),_T("CDC and CBitmap Ready!"));
DrawingXml oDrawingXml;
oDrawingXml.SetMedium(memDC.m_hDC);
CLog::Log(strFileName,_T("2"),_T("Enter Object of DrawingXml"));
if (type == DrawingXml::eFromStream)
{
if (!oDrawingXml.Draw(inXml, DrawingXml::eFromStream))
{
return false;
}
}
else
{
if (!oDrawingXml.Draw(inXml, DrawingXml::eFromFile))
{
return false;
}
}
CLog::Log(strFileName,_T("10"),_T("Open Clipboard"));
::OpenClipboard(NULL);
::EmptyClipboard();
CLog::Log(strFileName,_T("11"),_T("Set memBitmap.m_hObject to Clipboard"));
::SetClipboardData(CF_BITMAP,memBitmap.m_hObject);
::CloseClipboard();
CLog::Log(strFileName,_T("12"),_T("Close Clipboard"));
return true;
}作用是基于xml先创建一个位图,然后拷贝到clipboard。
现在的问题是,在大多数的电脑上是好。唯独有一台客户的电脑,在运行这个功能时,失败了。
请问各位,是客户电脑缺少东西,还是代码写错了。因为在这个方法里面的,所有log都没有打出来。请问是不是出现了什么异常需要去捕获?谢谢!
解决方案 »
- 用了xp风格文件manifest后关闭窗口怎么会出错?
- 用mscomm控件实现串口通信,如何使用RTS作为握手信号?
- WEB浏览器如何加载类似GOOGLE一样的控件
- 请教DOM查询XML的两个小问题,100分
- 我现在在自己的窗口中用DIRECTX显示一段动画,客户要求存储成AVI,有没有什么好用的代码库...
- 我需要什么知识?
- 求助 各位大师!关于一个 include 的问题
- No Such File Or Directory
- 请问各位,printf(sMess,"%s%s.\n", sz1, sz2)不改变sz2的值;sprintf(sMess,"%s%s.\n", sz1, sz2)为什么改变了sz2的值?改成乱码了
- 用鼠标滚轴控制窗口滚动啊!
- 想外包一个tapi方面的项目,有兴趣的高手qq联系
- 关于VC文档的名称
如果能够出现log,那么简单的办法就是每条语句后加一个日志。这样很容易定位到哪个语句出现的问题了。