swig c 预编译了DLL
SWIG C++ Precompiled DLL
我有一个第三方DLL(无标题文件),我能够从开发人员那里获取功能原型信息,但它是专有的,他将不会提供源。
我已经通过了SWIG教程,但是我找不到任何地方,指定如何使用SWIG使用DLL文件访问任何功能。教程上的所有内容都表明我需要拥有标题,以便swig知道功能原型的外观。
在这种情况下,Swig是正确使用的正确途径吗?我正在尝试将此DLL加载到Python中,以便我可以使用一个函数。从我所有的研究中,看起来Python的CTYPES都不适合C DLL文件,我正在尝试找到最佳的途径来执行此操作。boost.python似乎需要更改基础C 代码以使其与Python一起使用。
总结一下,当我知道功能原型时,是否有一种方法可以使用SWIG,但是没有标题文件或源代码?
即使没有标头文件,如果您有原型,也可以自己制作一个标题文件,或者直接在SWIG接口文件中输入原型。
例如,如果原型为:
int sum(const std::vector<int>& vint);
swig接口是:
%module example
%{
#include <vector>
%}
%include <std_vector.i> # SWIG support
%template() std::vector<int>; # Generate code to support template instance.
int sum(const std::vector<int>& vint); # Generate wrapper for function.
要使用库(静态或动态),您需要标题和库文件.a,.lib ...
它适用于C ,我认为Python也是如此
没有标头文件就无法使用。您唯一的选择是像ctypes这样的lib。如果您发现CTYPES不能为您做,并且找不到其他选择,请发布一个问题,说明为什么CTYPES在您的情况下不可用。
相关文章:
- 在使用 Clang 编译 DLL 时指定 DEF 文件
- 如何使用导出的函数交叉编译 DLL
- 从DLL导出函数,LoadLibrary()需要用TEXT转换的字符串才能编译而不会出错
- 为什么我可以在EXE上编译DLL
- 从Windows 10编译VS2017在Windows 7和…上部署..找不到DLL
- 是否可以编译使用 .NET DLL 和 GCC 的C++?
- 在 dll 中为 qLibrary 编译 qobject 时出错
- 如果使用低于 VS2015 的 vc++ 编译器版本编译,则 DLL 中的访问冲突
- W10上不可能使用十字架编译的libpng16-16.dll执行
- MinGW编译的exe-缺少libgcc_s_silj-1.dll
- 在 Windows 10 上使用 CZMQ 编译 dll 时出错
- 我可以将Visual Studio 2015头文件编译成dll并在VS2013中使用它吗?
- 编译时如何隐藏DLL文件中的字符串?
- 某些C++源文件是为多个 dll 编译的
- 集成DLL编译与英特尔c++编译器
- visual c++ MSVC dll编译错误,缺少类型说明符和重定义
- 将针对msvcrt.dll编译的库链接到Visual Studio 10 c++应用程序中
- 如何在 Linux 上使用 DLL 编译 Windows 应用程序
- 用64位的C++dll编译我的32位项目
- 将DLL编译为静态库时,如何处理DLL_EXPORT