test.cpp 410 B

12345678910111213141516171819202122232425
  1. #include "cffi.h"
  2. #include "pocketpy.h"
  3. using namespace pkpy;
  4. float* f(int* a){
  5. *a = 100;
  6. return new float(3.5f);
  7. }
  8. int main(){
  9. VM* vm = pkpy_new_vm(true);
  10. vm->bind_builtin_func<1>("f", NativeProxyFunc(&f));
  11. pkpy_vm_exec(vm, R"(
  12. from c import *
  13. p = cast(malloc(4), "int*")
  14. ret = f(p)
  15. print(p.get()) # 100
  16. print(ret, ret.get()) # 3.5
  17. )");
  18. pkpy_delete(vm);
  19. return 0;
  20. }