pocketpy/docs/C-API/introduction.md
2024-04-26 15:59:26 +08:00

40 lines
1.0 KiB
Markdown

---
title: Introduction
icon: dot
order: 10
---
### What C-API is for
If your target platform does not support C++17. You can compile pkpy into a static library and use its exported C-APIs.
Our C-APIs take a lot of inspiration from the lua C-APIs.
Methods return a `bool` indicating if the operation succeeded or not.
Special thanks for [@koltenpearson](https://github.com/koltenpearson)'s contribution.
!!!
C-APIs are always stable and backward compatible.
!!!
### Basic functions
+ `pkpy_vm* pkpy_new_vm(bool enable_os)`
Wraps `new VM(enable_os)` in C++.
+ `void pkpy_delete_vm(pkpy_vm*)`
Wraps `delete vm` in C++.
+ `bool pkpy_exec(pkpy_vm*, const char* source)`
Wraps `vm->exec`. Execute a string of source code.
+ `bool pkpy_exec_2(pkpy_vm*, const char* source, const char* filename, int mode, const char* module)`
Wraps `vm->exec_2`. Execute a string of source code with more options.
+ `void pkpy_set_main_argv(pkpy_vm*, int argc, char** argv)`
Wraps `vm->set_main_argv`. Set the `sys.argv` before executing scripts.