是否有任何提示可以告诉我有关将结构,双精度,函数,…从C程序传递到C ++库并返回的指针?
假设你在静态或动态的两个不同的库中编码它们(Linux上的Windows共享库上的DLL和其他* nix变体)我最关心的问题如下:
Pseudocode-ish Example: // C++ class class foo { public: void DoIt(); }; // export helper declarations extern "C" void call_doit(foo* pFoo); extern "C" foo* allocate_foo(); extern "C" deallocate_foo(foo* pFoo); // implementation void call_doit(foo* pFoo) { pFoo->DoIt(); } foo* allocate_foo() { return new foo(); } deallocate_foo(foo* pFoo) { delete pFoo; } // c consumer void main() { foo* pFoo= allocate_foo(); call_doit(pFoo); dealocate_foo(pFoo); }
C和C ++指针是相同的 – 一个指针基本上指向一个内存块,并且不会改变C / C ++。
您确实要小心不要跨越堆类型 – 例如,不要在一个库中分配并在可能具有另一个堆或使用另一个运行时版本的库中取消分配(反之亦然)。
您是否要询问有关传值或传递参考的问题? 提供更具体的问题可能会有所帮助。
以上就是c/c++开发分享将指针从C传递给C ++,反之亦然相关内容,想了解更多C/C++开发(异常处理)及C/C++游戏开发关注计算机技术网(www.ctvol.com)!)。
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/c-cdevelopment/562293.html