-
Notifications
You must be signed in to change notification settings - Fork 0
/
nDll.h
120 lines (96 loc) · 4.8 KB
/
nDll.h
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
#include <windows.h>
#include "stdint.h"
// 下列 ifdef 块是创建使从 DLL 导出更简单的
// 宏的标准方法。此 DLL 中的所有文件都是用命令行上定义的 NDLL_EXPORTS
// 符号编译的。在使用此 DLL 的
// 任何项目上不应定义此符号。这样,源文件中包含此文件的任何其他项目都会将
// NDLL_API 函数视为是从 DLL 导入的,而此 DLL 则将用此宏定义的
// 符号视为是被导出的。
#ifdef NDLL_EXPORTS
#define NDLL_API __declspec(dllexport)
#else
#define NDLL_API __declspec(dllimport)
#endif
// 此类是从 dll 导出的
class NDLL_API CnDll {
public:
CnDll(void);
// TODO: 在此处添加方法。
};
extern NDLL_API int nnDll;
NDLL_API int fnnDll(void);
#define V8_ERROR 0
#define V8_RANGE_ERROR 1
#define V8_REFERENCE_ERROR 2
#define V8_SYNTAX_ERROR 3
#define V8_TYPE_ERROR 4
typedef void* V8Isolate;
typedef void* V8Context;
typedef void* V8String;
typedef void* V8Object;
typedef void* V8ObjectTemplate;
typedef void* V8FunctionCallbackInfo;
typedef void(*V8FunctionCallback)(V8FunctionCallbackInfo info);
BOOL __stdcall v8_init();
void __stdcall v8_cleanup();
V8Isolate __stdcall v8_new_isolate();
void __stdcall v8_destroy_isolate(V8Isolate);
void __stdcall v8_enter_isolate(V8Isolate);
void __stdcall v8_leave_isolate(V8Isolate);
void __stdcall v8_throw_exception(int type, const uint16_t* errmsg);
V8Context __stdcall v8_new_context(V8Isolate);
void __stdcall v8_enter_context(V8Context);
void __stdcall v8_leave_context(V8Context);
void __stdcall v8_destroy_context(V8Context);
V8Object __stdcall v8_global_object(V8Context);
void __stdcall v8_destroy_string(V8String);
V8String __stdcall v8_eval_asstr(V8Isolate, V8Context, const uint16_t*);
const uint16_t* __stdcall v8_strinfo(V8String, int*);
BOOL __stdcall v8_set_object(
V8Isolate isolate,
V8Context context,
const uint16_t* propName,
V8Object owner,
V8Object propValue);
BOOL __stdcall v8_register_native_function(
V8Isolate isolate,
V8Context context,
const char* funcname,
V8FunctionCallback func,
const void* data);
void* __stdcall v8_FunctionCallbackInfo_data(const V8FunctionCallbackInfo info);
V8Object __stdcall v8_FunctionCallbackInfo_this(const V8FunctionCallbackInfo info);
void* __stdcall v8_FunctionCallbackInfo_internal_field(const V8FunctionCallbackInfo info, int idx);
int32_t __stdcall v8_FunctionCallbackInfo_arg_count(const V8FunctionCallbackInfo info);
V8String __stdcall v8_FunctionCallbackInfo_arg_as_str(const V8FunctionCallbackInfo info, int idx);
BOOL __stdcall v8_FunctionCallbackInfo_arg_as_int32(const V8FunctionCallbackInfo info,
int idx, int32_t* result);
BOOL __stdcall v8_FunctionCallbackInfo_arg_as_uint32(const V8FunctionCallbackInfo info,
int idx, uint32_t* result);
BOOL __stdcall v8_FunctionCallbackInfo_arg_as_int64(const V8FunctionCallbackInfo info,
int idx, int64_t* result);
BOOL __stdcall v8_FunctionCallbackInfo_arg_as_float(const V8FunctionCallbackInfo info,
int idx, double* result);
V8Object __stdcall v8_FunctionCallbackInfo_arg_as_object(const V8FunctionCallbackInfo info, int idx);
void __stdcall v8_FunctionCallbackInfo_return_int32(const V8FunctionCallbackInfo info, int32_t result);
void __stdcall v8_FunctionCallbackInfo_return_uint32(const V8FunctionCallbackInfo info, uint32_t result);
void __stdcall v8_FunctionCallbackInfo_return_int64(const V8FunctionCallbackInfo info, int64_t* result);
void __stdcall v8_FunctionCallbackInfo_return_float(const V8FunctionCallbackInfo info, double result);
void __stdcall v8_FunctionCallbackInfo_return_string(const V8FunctionCallbackInfo info, const uint16_t* result);
V8ObjectTemplate __stdcall v8_new_object_template(V8Isolate, int InternalFieldCount);
void __stdcall v8_destroy_object_template(V8ObjectTemplate objTemplate);
BOOL __stdcall v8_object_template_add_method(V8Isolate, V8Context,
V8ObjectTemplate objTemplate,
const char* name, V8FunctionCallback func, const void* data);
V8Object __stdcall v8_new_object(V8Isolate isolate, V8Context context,
V8ObjectTemplate objTemplate, void* FirstInternalField);
void __stdcall v8_destroy_object(V8Object obj);
int __stdcall v8_object_internal_field_count(V8Object obj);
void* __stdcall v8_object_get_internal_field(V8Object obj, int idx);
void __stdcall v8_object_set_internal_field(V8Object obj, int idx, void* value);
int32_t __stdcall v8_object_get_int32_field(V8Object _obj, const uint16_t* name, int32_t defValue);
uint32_t __stdcall v8_object_get_uint32_field(V8Object _obj, const uint16_t* name, uint32_t defValue);
BOOL __stdcall v8_object_get_float_field(V8Object _obj, const uint16_t* name, double* value);
BOOL __stdcall v8_object_get_int64_field(V8Object _obj, const uint16_t* name, int64_t* value);
V8String __stdcall v8_object_get_string_field(V8Object _obj, const uint16_t* name);
V8Object __stdcall v8_object_get_object_field(V8Object _obj, const uint16_t* name);