随笔 - 64, 文章 - 11, 评论 - 12, 引用 - 0
数据加载中……

2012-11 <上>疑问

4日:
      查看项目链接库的详细信息。
            在链接的其它选择项中设置 “/verbose:lib ”,就可以看到链接时搜索库的顺序,可以判断出函数重复的细节。
5日:
      关于strcat_s(char *strDestination, size_t numberOfElements, const char *strSource)的误区。
         numberOfElements,表示strDestination缓冲区空间大小,而不是指可以放下strSource区的大小。
      关于strcpy_s(char *pdest, size_t destSize, char *src) 在src的字串长度大于destsize时也会报错。
9日:
      关于CMultiDocTemplate->CreateNewFrame失败。
            在工程中要新增一种视图,添加MFC类分别继承于CMDIChildWndEx和CView类,但是在调用上述方法打开窗口时失败。经过跟踪来到CDocTemplate::CreateNewFrame方法,
             CFrameWnd* pFrame = (CFrameWnd*)m_pFrameClass->CreateObject();
             if (pFrame == NULL)
             {
                 TRACE(traceAppMsg, 0, "Warning: Dynamic create of frame %hs failed.\n",
                  m_pFrameClass->m_lpszClassName);
                 return NULL;
             }
            提示动态创建框架失败,打新建的CMDIChildWndEx子类,其中的宏为DECLARE_DYNAMIC把它改为DECLARE_DYNCREATE方式。再运行程序一切就可以了。

22日:
   _DllMain重定义问题(托管与非托管共存)
         一个混合的MFC程序,使用托管与非托管的MFC正规DLL在链接时出现了下如下链接的错误,错误 2 error LNK2005: _DllMain@12 已经在 
         msvcrtd.lib(dllmain.obj) 中定      义 .......\mfcs100ud.lib(dllmodul.obj),于是在链接时指定mfcs1007d.lib优先,但是也无济无事。朋友发现

         AFX_MANAGE_STATE(AfxGetStaticModuleState());仅只放在了托管的代码文件中,没有放到非托管的文件中。在非托管的文件中新建一个函数加入上面的语句,
         再次编译就可以了。





      

posted on 2012-11-04 12:36 Robertxiao 阅读(422) 评论(0)  编辑 收藏 引用 所属分类: 问题集锦


只有注册用户登录后才能发表评论。
网站导航: 博客园   IT新闻   BlogJava   博问   Chat2DB   管理