Отредактировано, потому что у меня неправильно построена DLL:
Я создал DLL, и если я выполняю команду dumpbin /exports
для DLL, я вижу следующее:
Dump of file stun_driver.dll
File Type: DLL
Section contains the following exports for stun_driver.dll
00000000 characteristics
546E6C63 time date stamp Thu Nov 20 17:34:11 2014
0.00 version
1 ordinal base
4 number of functions
4 number of names
ordinal hint RVA name
1 0 00001005 OPENSSL_Applink = @ILT+0(_OPENSSL_Applink)
2 1 00001320 launch_stun = @ILT+795(_launch_stun)
3 2 000011D6 stop_stun = @ILT+465(_stop_stun)
4 3 00001078 test_print = @ILT+115(_test_print)
Summary
1A000 .data
2000 .idata
46000 .rdata
F000 .reloc
135000 .text
Мой код для выполнения функции «test_print» выглядит следующим образом:
/* import js-ctypes */
Cu.import("resource://gre/modules/ctypes.jsm")
var stun_driver = ctypes.open("C:\\stun_driver.dll");
const test_print = stun_driver.declare("test_print", ctypes.default_abi, ctypes.int32_t);
.
.
.//in a button
test_print();
Итак, мой вопрос: если мой test_print()
выполняет printf("Hello World")
, куда идет этот текст? Кажется, он не регистрируется в консоли моего браузера или в консоли DOS, из которой я запускаю «cfx run».