-->
|
ActiveX Scripting Engines: ������������� �������� ������� � �++
|
�������� 1 �� 4 ������ ����� ������� �������� � ��������� ����������� ������������� �������� �������. ���� �� ������������ ������� � ������ ������������ – ������������ ActiveX Scripting Engines � ������������ VBScript ��� JavaScript. �� ������ ������, ��� ����� ��������� �������� ������ OLE COM ����������. ��������� �� ����� Microsoft ������� ����� ��������� ���-������ ������ ����������, ��������, ����������� METHOD_PROLOGUE � ����������� �������������� ��������� ������ ���������� ��������� pThis.
Me��� ���, ����������� ��������� ActiveScript ������ ��������. ������� ������ ���������� ������� ��������� �������, �� ��� � �� ����� – ���� ���������� ������: �������� ��������� �������, �� �������� � ��������. ��� ����� ���������� ��, ��� ��� �����������, � ������ MFC.
������ ����� ������� ��������� � ������������ ������. ����� � �������� ���������� ������ ��������� ��� ����������� ������������ ���������.
�������� ��������.������ ������ ����������������� � ����� �++ ���������� – ������������ � �������� �������� ����������, ����������� � �++ ����� ���������, ��� �������� �������. ������ ��������� ������: ������ �� ����� – ��� ���������� ������ �� ����. �����, ����� ���������� «k» ���� ��������� �� � ������������ ���� ������ ������� ��� «dim k», � ���-������ � C++ ������ ���, ��������, long k, � ����� ���������� VBScript ������ «k = 1» � �������� ����� ������ 1.
��� ���������� ����� ����������� ������������ �����, ����������� �� �������� MFC ������ CCmdTarget. ���� ����� ������������ �������� �������� ���������� (late binding). ���� �� ��������� � ������, �� �������� ������: ���� ������� ���������� �� ���������� � �������, � ����� ��������� �����. ������ � ���������� ��� ����� ������ �������������� ������� ���������������� ���������� ��������������. ���� � ������� ���� ������ «k = 1», � ���������� ����� long val, �� � ������� ���� ���-�� �������:
struct ENTRY { CString name; long* pval; };
long val; ENTRY table[] = { { "k", &val } }; UINT nEntryCount = 1;
| ������ ������ ������� «k = 1» ����������� ���:
for (UINT nIndex = 0; nIndex < nEntryCount; nIndex++) if ( table[nIndex].name == "k" ) { *table[nIndex].pval = 1; break; }
| ����������, ����������� ���� ������ ����� ������ � ������ ������������ ����� �������. �� �������� ������ ������� �������: ����� �������, �������� ����������, ������������ ��������, �������� ����� � ��� �����.
����, �������� �����, ����������� �� CCmdTarget.
#include <afx.h> #include <afxdisp.h> class CCodeObject : public CCmdTarget { public: CCodeObject(); virtual ~CCodeObject();
private: long m_nValue;
long GetMax(long, long); void PrintValue(long); void Message(LPCSTR);
enum { id_Value = 1, id_PrintValue, id_GetMax, id_Message };
DECLARE_DISPATCH_MAP() };
|
����� ������� – ��� ����������� ��� ���������������: long m_nValue; long GetMax(long, long); void PrintValue(long); void Message(LPCSTR);
| ������ ��� ������������ �� �������. ��� ������� �� ��� �������������� �������� ������������� � ������������ (enum):
enum { id_Value = 1, id_PrintValue, id_GetMax, id_Message };
| ����� � .cpp ������ ��������� �������:
BEGIN_DISPATCH_MAP(CCodeObject, CCmdTarget)
DISP_PROPERTY_ID(CCodeObject, "VALUE", id_Value, m_nValue, VT_I4) DISP_FUNCTION_ID(CCodeObject, "GetMax", id_GetMax, GetMax, VT_I4, VTS_I4 VTS_I4) DISP_FUNCTION_ID(CCodeObject, "PrintValue", id_PrintValue, PrintValue, VT_EMPTY, VTS_I4) DISP_FUNCTION_ID(CCodeObject, "Message", id_Message, Message, VT_EMPTY, VTS_BSTR)
END_DISPATCH_MAP()
| ������ DISP_PROPERTY_ID ��������� ���������� m_nValue � ����� ������ VT_I4 � �������. Ÿ ��������� ������������� "VALUE", �������� id_Value.
������ DISP_FUNCTION_ID ��������� ������� GetMax � ������������ ����� VT_I4 � ����� ����������� VTS_I4 � VTS_I4, �������������� ����� ������.
������ �������, ��� �������� ����� ���������� (��������, property) ��� �������: - �������� ��������������� ���� ������; - �������� � enum ����� id; - �������� ������ ���-������ ����� BEGIN_DISPATCH_MAP � END_DISPATCH_MAP.
������� ������ ����: � ������������ ������ ����������� ������ �������������� ����� ������ EnableAutomation().
|
|
-
C++,
���������� � ����������� (����������) �����������
��������� ���� ���������� �������� � ���������� ���������� ����������, ������� ���� ������� ������ ������, ����������� � ��������� �� ������������....
-
C++,
������ ������ ���������������� �� C
������ ������ ���������������� �� C....
-
C++,
C++. ��������� ����. ����� 2
����������� ����� �������� �.�. "C++. ��������� ����"....
-
C++,
C++. ��������� ����. ����� 1
����� �������� �.�. "C++. ��������� ����" �������� ����������� ����������������� ������������ ������ � ��� �� �.�. ���������� (���� ������ ��� ��������� 2-�� ����� �������������� ���������� ������� ������������ � �����������) � ����� �������������� ���������� (����������� ���� �� ����� ���������������� C++ ��� �������� 10-� �������). � ������������ ������ ��������������� ���� ���������������� C++ ��� ���������� ����....
-
C++,
������� ���������������� �� � � �++. ����� 7-8
� ���� ����� �������� ������� ���� �������� ��� ����������� ���� ��������� � ���� �������� ������������ ������ ���������������� �� �++ � � - ������, �������, �������, �������� ��� �� �������������, ���� �� ������ �� ������������ � ������ ������. ���� ����������� �� ���������� ����� ������ ��������� ����� ��� ���������������� ��� �� �, ��� � �� �++, � ������� ����� ���������, ������������ ���� � ���� �++ � ������������������� �� ���� ����������� � �������������� �������. ���� �� �������������� ��...
-
C++,
������� ���������������� �� � � �++. ����� 1-6
�������� ���� ����� �������� ��, ��� � ������ �������� ���������� ��� ������ ��� � �++, ��� � � �: ��� ����� ���� ��� ������� ��������, ��� ���� � ��� ��� ������� � ����������� �������� ���� � �������, �� � ����� �� ������ �������� ���������� ������ �� ����������� ������������� �����������, �������������� � ���� �� ������������ ����������. �� ������ �������� ������ ��� ��� ������ ���� ������, ���� ���� �� ����� �� ������....
-
C++,
��������� ������������������� ���� ��� �������� �� ��
���� ��� ����������� � ����� �� ������������� ��� ��������� �������� ������� � ���������� ��������, �������� ����������� ���� � ��� ����� ���� ���������� ���������. ������������ ������������ � ����� �� ������������� ���������� � ������� �������� �� ���������� ��������� � ����. � ����������� - � ���������� ������� ����������. ����� - � ������ ��������� ������� ������ ��������� ���������������� 80�86. ����� �������� ������������ ������������� �������� ����...
-
C++,
����� ���������� - ���� ���������������� �++. ����� 11-13
����� 11 - 13 ��������� ��������, ��������� � ����������� �++ ��� �������������� � ���������� ������� ����������� ������. � ����� 11 � �������� ��������������� ������� �������������� � ���������� ������������ ���������. � ����� 12 ����������� ����������� ����� ������ �++ � ���������� ��������������. � ����� 13 �������� ������� �������� ���������. ����������� ����� ���������� ������������ �� �++....
|
|
|