精华内容
下载资源
问答
  • 在实际操作中如果我们将静态编译嵌入Python生成了不依赖dll的exe的话,你就可以通过用vc2005 与python 2.5.4并用,来制造一个静态链接的exe的相关程序,以下是文章的具体内容的详细介绍。1: 下载 python2.5.4版本源...

    在实际操作中如果我们将静态编译嵌入Python生成了不依赖dll的exe的话,你就可以通过用vc2005 与python 2.5.4并用,来制造一个静态链接的exe的相关程序,以下是文章的具体内容的详细介绍。

    1: 下载 python2.5.4版本源代码

    2: 解压到 F:\study\python\Python-2.5.4

    3: 进入F:\study\python\Python-2.5.4\PCbuild8 ,打开解决方案 pcbuild.sln

    即用vc 2005打开 F:\study\python\Python-2.5.4\PCbuild8\pcbuild.sln

    4: 打开pcbuild solution的configuration properties 将 要build的勾选,全部去掉,只勾选pythoncore工程。

    5: 更改c/c++ 配置里的Code genration 类型为 /MT

    6: 更改pythoncore configuration properties 的configuration type 为: static lib

    7: 要实现静态编译嵌入Python生成不依赖dll的exevc2005 + python 2.5.4 制造一个 静态链接的exe程序中,你需要更改pythoncore工程 active release 的libray的 output file 为:$(OutDir)\python25.lib

    8: 编译工程 ,生成F:\study\python\Python-2.5.4\PCbuild8\win32release\python25.lib

    上面编译了一个静态链接的库python25.lib

    9: 建立一个新解决方案F:\study\python\vc\test\test.sln

    10: 添加一个文件main.cpp

    内容如下

    #include

    #include

    int main()

    {

    Py_Initialize();

    PyRun_SimpleString("print 'i am a static python exe!!!'");

    Py_Finalize();

    getchar();

    return 0;

    }

    以上就是对静态编译嵌入Python生成不依赖dll的exe@@@@相关的内容的介绍,望你会有所收获。

    【责任编辑:孙巧华 TEL:(010)68476606】

    点赞 0

    展开全文
  • 本文针对Windows平台下,python调取C/C++的dll文件。1.如果使用C语言,代码如下,文件名为test.c。__declspec(dllexport) int sum(int a,intb){return (a +b);}如果使用C++语言,代码如下,文件名为test_cpp.cpp。在...

    本文针对Windows平台下,python调取C/C++的dll文件。

    1.如果使用C语言,代码如下,文件名为test.c。

    __declspec(dllexport) int sum(int a,intb)

    {return (a +b);

    }

    如果使用C++语言,代码如下,文件名为test_cpp.cpp。在Windows平台下,__declspec(dllexport)是必须要添加的。

    #define DLLEXPORT extern "C" __declspec(dllexport)DLLEXPORTint sum(int a,intb)

    {return a +b;

    }

    2.编译生成dll文件。

    在Visual Studio中,生成的dll文件有32bit和64bit两种,需要和python的版本对应上,否则将会报出“WindowsError: [Error 193] %1 不是有效的 Win32”这个错误,如下图所示。

    191732123221391.png

    我的本机上python为python 2.7.9(64bit),因此需要在Visual Studio中将工程属性设置为64位的。设置步骤如下所示,相应的64位dll在x64目录下生成。

    191732151971636.jpg

    由于有的电脑上并没有安装C++ Run Time,如只安装32bit的python,依然加载不了32位的dll,会报出如下错误,“WindowsError: [Error 126] ”

    191732165415081.png

    191732191827554.png

    3.python调用,代码如下:

    from ctypes importcdll

    dll= cdll.LoadLibrary('G:\keyphrase extraction\Test\TestForPython.dll')print dll.sum(1,2)

    输出结果如下:

    191732206821813.png

    ctypes变量类型、C语言变量类型和Python语言变量类型之间的关系如下所示:

    251711449909168.png

    FAQ:

    1、如果只有一个dll,如何判断它是32位的还是64位的dll?

    可以使用dumpbin工具,

    在Visual Studio自带的dumpbin工具,然后输入dumpbin /HEADERS TestForPython.dll

    machine后为(x64),可以看到这个dll是64位的;如果machin后为(x86),则为32位的dll。

    191750390107658.png

    参考链接:

    展开全文
  • 本文针对Windows平台下,python调取C/C++的dll文件。1.如果使用C语言,代码如下,文件名为test.c。__declspec(dllexport) int sum(int a,int b){return (a + b);}如果使用C++语言,代码如下,文件名为test_cpp.cpp。...

    本文针对Windows平台下,python调取C/C++的dll文件。

    1.如果使用C语言,代码如下,文件名为test.c。

    __declspec(dllexport) int sum(int a,int b)

    {

    return (a + b);

    }

    如果使用C++语言,代码如下,文件名为test_cpp.cpp。在Windows平台下,__declspec(dllexport)是必须要添加的。

    #define DLLEXPORT extern "C" __declspec(dllexport)

    DLLEXPORT int sum(int a,int b)

    {

    return a + b;

    }

    2.编译生成dll文件。

    在Visual Studio中,生成的dll文件有32bit和64bit两种,需要和python的版本对应上,否则将会报出“WindowsError: [Error 193] %1 不是有效的 Win32”这个错误,如下图所示。

    191732123221391.png

    我的本机上python为python 2.7.9(64bit),因此需要在Visual Studio中将工程属性设置为64位的。设置步骤如下所示,相应的64位dll在x64目录下生成。

    191732151971636.jpg

    由于有的电脑上并没有安装C++ Run Time,如只安装32bit的python,依然加载不了32位的dll,会报出如下错误,“WindowsError: [Error 126] ”

    191732165415081.png

    191732191827554.png

    3.python调用,代码如下:

    from ctypes import cdll

    dll = cdll.LoadLibrary('G:\keyphrase extraction\Test\TestForPython.dll')

    print dll.sum(1,2)

    输出结果如下:

    191732206821813.png

    ctypes变量类型、C语言变量类型和Python语言变量类型之间的关系如下所示:

    251711449909168.png

    FAQ:

    1、如果只有一个dll,如何判断它是32位的还是64位的dll?

    可以使用dumpbin工具,

    在Visual Studio自带的dumpbin工具,然后输入dumpbin /HEADERS TestForPython.dll

    machine后为(x64),可以看到这个dll是64位的;如果machin后为(x86),则为32位的dll。

    191750390107658.png

    参考链接:

    展开全文
  • 首先,dll工程的创建以及dll文件生成

    工具:VS2010    python2.7 (若使用的python是64位的,生成的dll也要使用x64)

    系统:win7pro 64bit


    首先,dll工程的创建以及dll文件的生成:

    new project-->win32 project-->next-->DLL,empty project-->finish

    如果没有选择empty project,系统会自动创建几个文件。其中,dllmain.cpp是DLL应用程序的入口点。

    添加Head Files(mydll.h),添加Source Files(mydll.cpp)

    在头文件中:

    #ifndef LIB_H
    #define LIB_H
    extern "C" { _declspec(dllexport)  int  add(int* x, int y);};
    #endif

    在mydll.cpp中:

    #include "mydll.h"
    int add(int* x, int y)
    {
    int a = (*x);
    a++;

    (*x) = a;
    return y;
    }

    ctrl+F7编译之后没有问题了,就build-->build mydll,生成了mydll.lib和mydll.dll。

    /××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/

    tips:

    debug:调试版本,包含调试信息,不做任何优化,便于程序员调试程序。

    release:发布版本,在代码量和运行速度上都做了优化,来使程序运行速度更快,便于用户使用。

    /××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××××/

    python对dll里面函数的调用。

    对于int×指针类型的int,要对in的参数做处理:

    import ctypes
    dlltest = ctypes.cdll.LoadLibrary('dlltest.dll')
    a = ctypes.c_int(5)
    print dlltest.add(ctypes.byref(a),4)
    print a.value





















    展开全文
  • Python运行DLL文件

    2020-01-15 16:45:47
    什么是DLL文件DLL文件为动态链接库(英语: Dynamic-link library, 缩写为DLL) 它是微软公司在微软视窗操作系统中实现共享函数库概念的一种实现方式 先来阐述一下DLL(Dynamic Linkable Library)的概念,你可以...
  • DLL:动态链接库,用来与其他语言进行交互。...现在需要在项目的cpp下面写dll文件: 比如,写一个加法运算 第5行,这条语句表示以c的格式导出一个lib文件,lib文件里包含了DLL中导出的相关信息 3、编译...
  • python调用dll文件接口

    万次阅读 2017-07-09 23:16:33
    使用python中的ctypes模块可以很方便的调用windows的dll(也包括linux下的so等文件),下面将详细的讲解这个模块(以windows平台为例子),当然我假设你们已经对windows下怎么写一个DLL是没有问题的。   引入ctypes...
  • Python调用vs2015生成dll文件

    千次阅读 2019-05-23 15:44:38
    目前工作中,Python用的最多,但是很多数学计算在Python中运行,速度会很慢,而...在网上看了很多教程,都只有Python调用dll的code,对于dll的如何生成只字不提,或者是基于linux的.so文件。在单独搜索dll如何生成...
  • python调用C++ dll文件

    2020-12-25 09:08:27
    python调用C++ dll文件1、在VS2013中新建工程生成dll文件(1)新建——项目——Win32控制台程序——然后取个名字——确定——下一步——选择DLL...选择X64(3)添加源文件和头文件(4)生成dll文件2、在python中调用dll...
  • 目前,Python是最常用在工作,但许多数学计算在...我读过很多教程在互联网上,但只有Python调用dll的代码,而不是一个单词如何生成dll,或是基于Linux。分别如何生成dll搜索之后,我根据下面的代码生成dll: #定义EXPORT_MY...
  • Python加密生成so文件dll

    千次阅读 2020-03-19 13:43:19
    如何封装Python代码,让别人方便调用,同时又能起到加密的作用,本文介绍如何封装成so文件和dll文件以及调用方式 首先需要配置环境 安装Cython gcc Linux下的.so文件 创建要封装的文件mytest.py import datetime...
  • 所谓dll文件,即动态链接库(英语:Dynamic-link library,缩写为DLL) wiki上解释为:所谓动态链接,就是把一些经常会共享的代码(静态链接的OBJ程序库)制作成DLL档,当可执行文件调用到DLL档内的函数时,...
  • 有时,在生成可执行文件exe文件后,在其他电脑上执行该文件,却报错:ImportError: unable to find Qt5Core.dll on PATH。 具体如下: 原因:pyqt5库对系统变量的加载存在bug,在主程序中pyqt5库import之前就对...
  • dll = CDLL("func.dll") dll.add(23, 33) length = dll.print_s(c_char_p(b"Andy")) print(length) arr = (c_double*5)() arr[0] = 100 arr[1] = 200 arr[2] = 300 arr[3] = 200 arr[4] = 200 dll.update(byref(arr...
  • Python生成pyd文件

    千次阅读 2018-01-31 20:04:00
    Python的脚本文件是开源的,量化策略的安全性没有保障。因此需要保护源码。那么要对Python代码进行混淆、加密保护。 混淆代码,我准备使用pyminifier。而加密处理,就比较麻烦。 Python有py、pyc、pyw、pyo、pyd等...
  • python生成安装文件 msi

    千次阅读 2017-12-17 00:06:10
    需要在目录下面创建一个文件 。setup.py ②.写入代码: import sys from cx_Freeze import setup, Executable import os os.environ['TCL_LIBRARY'] = r'C:\Python36-32\tcl\tcl8.6' os.environ['TK_LIBRARY'] = ...
  • ctypes模块提供了和C语言兼容的数据类型和函数来加载dll文件,因此在调用时不需对源文件做任何的修改。也正是如此奠定了这种方法的简单性。示例如下:实现两数求和的C代码,保存为add.c#include "stdio.h"...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 20,442
精华内容 8,176
关键字:

python生成dll文件

python 订阅