jjzjj

c# - 在 Windows 上用 C# 加载 linux 动态库 (.so)

我正在使用swig为我的代码生成一个C#包装器。但是然后我还需要链接动态库,这是一个Linux.so文件。是否可以从C#执行此操作?谢谢编辑:在Windows上使用.so文件。 最佳答案 没有直接的方法可以做到这一点。您需要为所有native代码(so本身以及所有依赖项)创建nativeWindows版本。其他选项包括在Linux上编写所有代码,如果可能的话,包括C#部分(使用Mono)。或者创建某种客户端/服务器设置,其中您的native代码保留在Linux上(作为服务器应用程序),而您的C#代码在Windows客户端上运行。如果

python C++ 扩展 : symbol not defined error

我有一个工作的c++代码,我想将其包装到WindowsXP和Python2.7上的python模块中。我以前从未这样做过,所以我研究了swig和distutils。我创建了一个接口(interface)文件和一个setup.py并使用编译pythonsetup.pybuild_ext-cmingw32该脚本从我的module.i和module.cpp文件创建一个module_wrap.cpp,然后创建一个module_wrap.o和一个module.o。module.o的创建为未使用的变量和弃用的char*创建了一堆警告,但它似乎有效。因为C++代码不是我的,所以我现在真的不想讨论这些

python - 构建引用 .PYD 的 Python 包/模块的正确方法是什么?

我是Python世界的新手,现在我发现自己正在尝试学习如何正确创建Python包或模块。我还有几个必须满足的要求。我有一个从C++编译的核心nativeDLL(我们将其命名为MyCore.dll)。此DLL必须部署到特定的安装位置,因为它是产品的核心组件(我们会说ProgramFiles\MyProduct)。我已使用SWIG为MyCore.dll生成Python绑定(bind)。它生成了2个文件:_MyCoreBindings.pyd(本质上是一个引用MyCore.dll的DLL)和MyCoreBindings.py(加载_MyCoreBindings.pyd并为其提供PythonA

python - 尝试使用 C 库并使用 swig 将其公开给 Windows 中的 Python。关于静态与动态以及使用 Visual Studio for swig 的问题

也许我应该将其拆分为单独的问题,但在尝试了所有这些之后,我想知道它们是否不是相互关联的。这是背景故事:Linux和Windows中都有一些C库。有人在Linux中使用swig将C库的API暴露给Python。他或多或少地为swig编写了一个构建脚本(.i文件),swig创建了一个包装器C文件,他使用gcc编译该C文件,链接到原始库以获取Python模块。现在我已经收到了他的工作,并被要求为Windows图书馆做这件事。我希望我能找到一种快速的方法来使用他的.i文件为Windows创建一个文件。我们使用VisualStudio2010。我对swig了解不多,对C和VisualStudio

在 Web 应用程序中使用基于 C 的 API(困惑)的 Javascript 扩展

我的目标是使用C库来构建网络应用。我选择了使用“SWIG”工具来实现这一点。Swig工具需要三样东西:.c定义所有函数的文件。.i文件也称为接口(interface)文件,它正在创建加载API的接口(interface),其中我使用了extern关键字。用Javascript扩展(.js文件)编写的APP。我使用SWIG工具编译并运行此应用程序以验证.js文件是否正确生成。该应用程序在XMINGX11窗口上运行良好。编译时它会创建_wrap.o、.o文件和libFILENAME.so。现在我想在浏览器页面上运行这个应用。为此,我使用了webkit杂波端口,它为我们提供了MxLaunch

php - 无法使用 php 安装 webpay 扩展?

我正在尝试在我的本地安装webpaySWIG扩展,但它显示了一些错误。我所做的是cdwebpaySWIG-3.2(这是扩展的位置)sudomake-fmakefilePhp5(他们的文档中提到了这个命令)编译时出现如下错误fatalerror:zend.h:Nosuchfileordirectorycompilationterminated. 最佳答案 我知道这是一个老问题,但我最近遇到了类似的问题。您需要更新makefilePhp5以包含正确的php包含目录。通常是:PHP_INCLUDE_DIR=/usr/include/php

java - 使用 SWIG 从 Java 访问结构中的指针数组

我有这样的东西:typedefstruct{char*content;}Boo;typedefstruct{Boo**data;intsize;}Foo;我想使用SWIG在Java中将Boo**数据转换为包含Boo元素(Boo[])的数组。然后读取数组(我不想从Java代码编辑、删除和创建新数组)。在SWIG文档中描述了如何使用carrays.i和array_functions执行此操作,但是结构的成员data必须是类型嘘*。我的问题有解决方案吗?编辑:时间仓促忘了写想用SWIG生成Java类配合C结构。 最佳答案 解决方法很简单。

java - 如何使用 JNI 或 JNA 读取窗口标题?

希望回到发展空间;主要使用Java调用一些nativewin32函数(我不想在.NET中构建)...有人可以指点我可以使用Java(JNI/JNA/SWIG)从不同的运行窗口读取标题的地方吗?假设您知道您尝试Hook的应用程序在内存空间中的哪个位置。 最佳答案 在JNA中:publicinterfaceUser32extendsStdCallLibrary{User32INSTANCE=(User32)Native.loadLibrary("user32",User32.class);intGetWindowTextA(Pointe

java - 使用 SWIG 将数组从 C 返回到 Java

我有这样一个C函数:voidget_data(constobj_t*obj,shortconst**data,int*data_len);我专门为Swig写的,因为constshort*get_data(constobj_t*obj,int*data_len);会引起麻烦,因为SWIG的类型映射不够智能,无法将data_len与返回值相关联。在Java中,我希望能够像这样调用这个函数:shortdata[]=mylib.get_data(obj);但我想不通如何让数组输出参数成为返回值。对于Ruby和Python,这很好用,因为这些语言的SWIG支持将输出参数作为返回值返回(因为这些语

java - 将java函数注册为C函数中的回调

我正在尝试使用SWIG1.3在Java中实现一些C代码。现在我必须将一些现有的C重建为Java代码并提供一个函数指向C方法的Java函数的指针。C代码:net.c:voidregister_message_handler(context_t*ctx,message_handler_thandler){context->msg_handler=(void(*)(void*,coap_queue_t*,void*))handler;}客户端.c:voidmessage_handler(context_t*ctx,queue_t*node,void*data){...}intmain(int