python执行现有的(和大)c ++代码

Rag*_*ard 1 c++ python

我有一个C++程序,它使用该cryptopp库来解密/加密消息.

它提供了两个接口方法encryptdecrypt接收字符串,并通过对其进行操作cryptopp的方法.

有没有办法在Python中使用这两种方法而无需手动包装所有cryptopp包含的&文件?

例:

import cppEncryptDecrypt

string foo="testing"
result = encrypt(foo)
print "Encrypted string:",result
Run Code Online (Sandbox Code Playgroud)

Ale*_*lli 6

如果你可以从那个C++代码创建一个DLL,那么暴露这两个方法(理想情况下是"extern C",这使得所有接口任务变得如此简单),ctypes可以作为答案,不需要任何第三方工具或扩展.否则,它是您在cython,旧SWIG,SIP,Boost等之间的选择- 很多很多这样的第三方工具会让您的Python代码调用这两个C++入口点,而不需要包装除了它们之外的任何东西.