2 cyf799232707 cyf799232707 于 2016.01.26 17:58 提问

CWnd::Create 出现afxwin1.inl line21出现问题

首先说下我是在regular mfc dll中调用这个cwnd::create方法的。而且这个代码不是我写的,
是别人写的代码。

 m_pWndMessageTarget->CWnd::Create(NULL, _T("cessocket_message_sink"), WS_CHILD, CRect(0, 0, 20, 20), pWndParent, 0);

而且我是用jni,使用java jni来调用这个函数的。
创建这个cwnd是为了实现消息与函数的MAP。
现在我用java jni调试出现这个问题:
图片说明

_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle()
{
ASSERT(afxCurrentResourceHandle != NULL);//这里出错!
return afxCurrentResourceHandle;
}
看了别人的回答,说是unicode编码的问题,有没有大神能解决啊

2个回答

oyljerry
oyljerry   Ds   Rxr 2016.01.26 20:34

mfc dll需要mfc的exe来加载 不能java直接调用

caozhy
caozhy   Ds   Rxr 2016.01.26 20:43
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
关于Cwnd::Create()函数出现afxwin1.inl line:21错误的解决方法
我最近在调试一个dll时,出现了一个莫名的断言错误,就是在主程序中创建由MFC 扩展DLL导出的一个控件(该控件继承自CWnd类)时,一调用Create()函数就出现下面的的断言错误: 调试跟进去: file:afxwin1.inl  line:21  发现是下面的断言语句报错: _AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResource
vs2010 debug afxwin1.inl错误
最近编译Deform2d, 编译出来的结果debug有错误, 显示
Debug Assertion Failed! File:afxwin1.inl Line:22
这种断言估计是常识去load一个未分配的资源id造成的。如果是 dll 的问题:首先分析是哪个函数调用之后,出现 AfxGetResourceHandle()==NULL 的问题;然后,  如果这个 dll 是自己的 MFC 库,在输出函数的时候第一行,使用 AFX_xxx 的那个宏定义;  如果这个 dll 是第三方的,在调用前通过 AfxGetResourceHandle() 保存当前 HANDLE 值,在调用函数之后,调用 AfxSetResourceHandle() 恢复 HANDLE 值;  或者
CWnd::Create和CWnd::CreateEx 区别
1. 定义 BOOL CWnd::CreateEx(DWORD dwExStyle, LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, LPVOID lpParam /* = NULL */) { return Cre
在CDialog和CWnd中动态创建一个窗体的方式
在CDialog和CWnd中使用Create动态创建一个窗体的方式 class CDisplayDlg : public CDialog { /* Construct function */ CDisplayDlg(CWnd* pParent = NULL) { RECT rRect = {0, 0, DSP_SCREEN_WIDTH, DSP_SCREEN_HEIGHT}; CWn
Debug Assertion Failed! File:afxwin1.inl Line:22的解决
编译通过了,用注册文件加载到proe,结果出现了如下错误Debug   Assertion   Failed!   File:afxwin1.inl   Line:24查到这句话_AFXWIN_INLINE HINSTANCE AFXAPI AfxGetResourceHandle() { ASSERT(afxCurrentResourceHandle != NULL);  retur
创建一个非模式对话框 出现问题
创建一个非模式对话框:       g_pQueryPixelDlg = new CQueryPixelDlg;     g_pQueryPixelDlg->Create(IDD_QUERYPIXELDLG,clientControl);     g_pQueryPixelDlg->m_pQueryPixelCtrl = g_pQueryPixelCtrl;     g_pQu
【VC】实现CWnd类的自定义,并实现自定义控件!
本例实现一个ColorWnd类,实现通过鼠标单击,刷新不同的颜色背景。 class CColorWnd : public CWnd { DECLARE_DYNAMIC(CColorWnd) public: CColorWnd(); virtual ~CColorWnd(); virtual BOOL PreCreateWindow(CREATESTRUCT& cs); afx
CWnd创建WS_CHILD和WS_POPUP窗口的不同
CWnd创建WS_CHILD和WS_POPUP窗口的不同
CWnd类总结
一、MFC 类别阶层架构 二、CWnd类 CWnd是MFC的一个窗口类,这个类里几乎封装了所有关于窗口操作的API函数。 在Windows系统里,一个窗口的属性分两个地方存放:一部分放在“窗口类”里头,如上所述的在注册窗口时指定;另一部分放在Windows Object本身,如:窗口的尺寸,窗口的位置(X,Y轴),窗口的Z轴顺序,窗口的状态(ACTIVE,MINIMI