摘要:
在WebBrowser中C++可以和JS互相通信,下面说一下怎样实现C++调用JS。所有的网页全局函数均是window的一个方法,所以首先获取到页面的window对象。将所调用的JS方法名转换为ID,IDispatch对象的GetIDsOfNames方法。通过函数ID调用JS函数,IDispatch对象的Invoke方法。一下是DuiLib中的WebBrowser具体实现:1)继承CWebBrowserUI创建一个新类。这里说下这个函数 1 IDispatch* DuiLib::CWebBrowserUI::GetHtmlWindow() 2 { 3 IDispatch* pDp = ... 阅读全文
摘要:
问题:程序中有如下逻辑:向网络请求数据,然后获取响应的部分HTML代码,此时获取到的数据为宽字节字符(wchar_t)。需要对获取到的部分HTML代码进行分析,但是处理逻辑只接受多字节字符(char),这个就需要进行编码转换,使用ATL提供的转换函数(其实是个模板类)CW2A。并且使用默认的code page :CP_THREAD_ACP。分析过程会从HTML中解析出一些属性值,当然这些属性值是以多字节字符返回的。程序其他地方需要使用这些属性值,我们又得把多字节字符转换成宽字节字符,使用CA2W。在中文操作系统下面一切正常,可是到了英文系统下就会出现HTML中的中文属性值乱码。解决方法:在使用 阅读全文