ÔÚJavaScript µ÷ÓÃC++
·½°¸Ò»£º
// html & JavaScript
...
<button value="Click me"
onclick="window.navigate('app:command&arg1=1&arg2=2')" />
...
// C++: ÏìÓ¦ µÄÏûÏ¢º¯ÊýOnBeforeNavigat2
virtual void OnBeforeNavigate2( LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel );
// C++ code goes here
CXXXDlg::OnBeforeNavigate2( LPCTSTR lpszURL, DWORD nFlags, LPCTSTR lpszTargetFrameName,
CByteArray& baPostedData, LPCTSTR lpszHeaders, BOOL* pbCancel )
{
CString strUrl = lpszURL;
if(strUrl.Left(4) == _T("app:"))
{
// cancel the common url navigate and call your c++ code here
*pbCancel = TURE;
// call other c++ function here or parse the argument in the strUrl
}
// go common url navigate here
}
·½°¸¶þ£º
// html & javaScript
...
function CallCpp()
{
alert('start to call cpp here');
window.external.JavaScriptCallCpp('This
is a test for call C++ in JavaScript');
}
<button onclick="CallCpp()"
>JavaScript·ÃÎÊC++´úÂë</button>
...
// C++ code goes here
CString javaScriptName =
_T("JavaScriptCallCpp");
#define DISPID_CallCppfromJs 1
// ʵÏÖIDispatch ½Ó¿Ú
// .h
class CImpIDispatch : public IDispatch
{
protected:
ULONG m_cRef;
public:
CImpIDispatch(void);
~CImpIDispatch(void);
STDMETHODIMP QueryInterface(REFIID, void **);
STDMETHODIMP_(ULONG) AddRef(void);
STDMETHODIMP_(ULONG) Release(void);
//IDispatch
STDMETHODIMP GetTypeInfoCount(UINT* pctinfo);
STDMETHODIMP GetTypeInfo(/* [in] */ UINT iTInfo,
/* [in] */ LCID lcid,
/* [out] */ ITypeInfo** ppTInfo);
STDMETHODIMP GetIDsOfNames(
/* [in] */ REFIID riid,
/* [size_is][in] */ LPOLESTR *rgszNames,
/* [in] */ UINT cNames,
Ïà¹ØÎĵµ£º
µÚ3Õ ÔõÑù²ÅÄܸßЧÂʲâÊÔ
3.1 ËÆÊǶø·ÇµÄ¸ßЧÂÊ
ÕâÒ»½Ú³ÎÇåһЩÁ÷ÐеÄÎó½â»òÎóµ¼£¬Ò»Ð©¿´ÆðÀ´ºÜ²»´íµÄ¸ßЧÂÊ£¬Êµ¼ÊÉÏÊÇËÆÊǶø·ÇµÄ¡£
È«×Ô¶¯Éú³ÉÓÃÀý
È«×Ô¶¯Éú³ÉÓÃÀýÊÇËùÓвâÊÔÈËÔ±µÄÆÚÅΣ¬ºÃÏûÏ¢ÊÇ£¬ÕâÊÇÒ»ÖÖ¼òµ¥µÄ¼¼Êõ£¬Ê®Äêǰ¾ÍÓÐÁË£¬»µÏûÏ¢ÊÇ£¬ÕâÖÖ¼¼Êõ×÷ÓúÜС¡£
......
javascript¼¯½õ
javascriptÊý×é²Ù×÷»ã×Ü
javascript¶¯Ì¬´´½¨form±íµ¥ ºÍ ½Úµã¿ØÖÆËµÃ÷
¶¯Ì¬¶ÁÈ¡
javascript:function ctys(_ctag){
ctys1=document.createElement(_ctag);
document.body.appendChild(ctys1);
return ctys1
};
newE1=ctys('<TEXTAREA id=www>');
newE1.cols='150';
newE1.rows='30 ......
1¡¢Xerces-C++ÊÇʲô£¿
Xerces-C++ µÄǰÉíÊÇ IBM µÄ XML4C ÏîÄ¿¡£XML4C ºÍ XML4J ÊÇÁ½¸ö²¢ÁеÄÏîÄ¿£¬¶ø XML4J ÊÇ Xerces-J——Java ʵÏÖ——µÄǰÉí¡£IBM ½«ÕâÁ½¸öÏîÄ¿µÄÔ´´úÂëÈÃÓë Apache Èí¼þ»ù½ð»á(Apache Software Foundation)£¬ËûÃǽ«Æä·Ö±ð¸ÄÃûΪ Xerces-C++ º ......
/*
title£ºÔ¼Éª·òÎÊÌâµÄÑ»·Á´±í½â·¨
author£ºcoolsky600
date£º2010 04 22
notice£ºcÓïÑÔ ÃæÏò¹ý³Ì
*/
#include<stdio.h>
#include<stdlib.h>
#include<conio.h>
int num; //È«¾Ö±äÁ¿Î§È¦ÈËÊý
int out; & ......
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
<title>ʹÓÃJavaScriptÑéÖ¤ÊäÈë±íµ¥µÄÕýÈ·ÐÔ </title>   ......