在MFC用html做界面,,怎样能用html的链接调用c++函数

在MFC用html做界面,,怎样能用html的链接调用c++函数,第1张

如果你是利用 CHtmlView 的话,在 html 里利用javascript做页面跳转,然后htmlview的beforenavigate 事件里截获链接,然后处理即可,因为链接你可以自定义,所以页面的参数可以通过连接传进来。

这是一段类似的代码可以参考

void CIEView::OnBeforeNavigate2(LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName, CByteArray&baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel)

{

    // TODO: Add your specialized code here and/or call the base class

    CMainFrame* pfrm=(CMainFrame*)AfxGetMainWnd()

                 

    CString strURL,strURL2

    strURL=lpszURL

                 

    strURL.MakeLower()

    if(strURL.Left(4)!="http" &&strURL.Left(3)!="ftp")

    {

        if(strURL.Left(8)=="email://")

        {

            *pbCancel=TRUE

            ProcessEmail(strURL)

            return

        }

        if(strURL.Left(9)=="search://")

        {

            *pbCancel=TRUE

            ProcessSearch(strURL)

            return

        }

                     

        strURL=pfrm->GetRealURL(strURL)

        pfrm->AddToHistory(strURL)

    }

                 

    CHtmlView::OnBeforeNavigate2(lpszURL, nFlags,lpszTargetFrameName, baPostedData, lpszHeaders, pbCancel)

}

C语言是程序语言的鼻祖。不过要想在html中运行c?这我就不理解了。你到底要干什么?

我们可以把c的exe文件跟html文件打包,从而执行c。也可以用Js把c源码直接拿出来,展示在浏览器上。至于要让c语言在网页中发挥作用吗?也不是不行,没有c语言做不到的事情。但是就没有那个必要了。

方法吗?很白痴,就是用c语言控制浏览器进程。通过注射来改变进程的值,以达到改变用户端的code资料。

或许你想让html能内嵌一个c语言程序。这个意思也就是内嵌一个exe进程在html中。这不就和上面的想法一样了吗?用木马的办法绑起来就可以了。

顺便说一句,c语言功能虽然强大。其他任何语言能做到的,他都能做到。不过,在某些特定的领域中,不宜用。因为麻烦。例如,你要改变一个值,你用js和用c。那个更容易定位一个变量呢?js和html的关系毕竟就是亲,他们之间的调用也方便许多。js也能直接访问code资料。基本html中的功能使用js都能实现,何必再用c?

如果真的有些问题,必须要用c来解决,还望提出一起讨论。


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/7218867.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-03
下一篇 2023-04-03

发表评论

登录后才能评论

评论列表(0条)

保存