-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathchakracore.cpp
42 lines (33 loc) · 1.32 KB
/
chakracore.cpp
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
#include "chakracore.h"
#include <stdio.h>
#include <Windows.h>
chakracore_init_t dll_chakracore_init = NULL;
chakracore_set_printstring_t dll_chakracore_set_printstring = NULL;
chakracore_eval_t dll_chakracore_eval = NULL;
int chakracore_prepare(printstring_t printer) {
HMODULE handle = LoadLibraryA("ChakraCoreInterface.dll");
dll_chakracore_init = (chakracore_init_t )GetProcAddress(handle, "chakracore_init");
dll_chakracore_set_printstring = (chakracore_set_printstring_t)GetProcAddress(handle, "chakracore_set_printstring");
dll_chakracore_eval = (chakracore_eval_t )GetProcAddress(handle, "chakracore_eval");
#ifdef TEST_CHAKRACORE
printf("cci handle=%d\n", handle);
printf("dll_chakracore_init = %d\n", dll_chakracore_init );
printf("dll_chakracore_set_printf = %d\n", dll_chakracore_set_printstring);
printf("dll_chakracore_eval = %d\n", dll_chakracore_eval );
#endif
if (dll_chakracore_set_printstring) {
dll_chakracore_set_printstring(printer);
}
if (dll_chakracore_init)
dll_chakracore_init();
return 1;
}
int chakracore_eval(const char *code) {
if (dll_chakracore_eval == NULL) {
#ifdef TEST_CHAKRACORE
printf("dll_chakracore_eval == NULL\n");
#endif
return 0;
}
return dll_chakracore_eval(code);
}