c++生成dll使用python调用dll的方法_python

第一步,建立一个CPP的DLL工程,然后写如下代码,生成DLL

复制代码 代码如下:

#include <stdio.h>    

#define DLLEXPORT extern "C" __declspec(dllexport)    

DLLEXPORT int __stdcall hello()    
{    
    printf("Hello world!\n");    
    return 0;    
}

第二步,编写一个 python 文件:

复制代码 代码如下:

# coding: utf-8    

import os    
import ctypes    

CUR_PATH = os.path.dirname(__file__)    

if __name__ == '__main__':    
    print 'starting...'   
    dll = ctypes.WinDLL(os.path.join(CUR_PATH, 'hello.dll'))    
    dll.hello()

时间: 2024-08-03 11:31:33

c++生成dll使用python调用dll的方法_python的相关文章

python调用dll的释放问题

问题描述 python调用dll的释放问题 小弟用python 写了个调用SiInterface.dll的adaptor.exe这里有调用win32api.FreeLibrary()释放dll了,运行该adaptor.exe后,做完一个交易后,其他程序调用这个dll做交易就会加载不到这个dll请问是我没释放成功SiIterface.dll 还是adaptor.exe打开运行后,他就一直占用着SiInterface.dll因为在使用adaptor.exe做完一个交易后关闭该exe,再使用别的程序调

dll动态库-python 调用DLL 动态库之后 怎么释放

问题描述 python 调用DLL 动态库之后 怎么释放 各位大神,请问python 利用 ctypes调用DLL之后怎么释放啊 解决方案 不需要释放,CDLL析构中会自动释放

java-jni调用C#Dll,被调用DLL依赖的第三方DLL该放哪里?提示找不到

问题描述 jni调用C#Dll,被调用DLL依赖的第三方DLL该放哪里?提示找不到 如题,我有一个第三方DLL文件,它本身也依赖其他一些第三方DLL库文件,我现在用java 通过Jacob的方式实现调用该DLL文件,总是提示找不到该DLL依赖的DLL文件,请问这些 依赖项该放哪里?或者怎么处理? 解决方案 一般来说,C# dll注册到gac,原生dll放在system32(x64系统是wow64) 解决方案二: 我也尝试过这样去解决,我把依赖的所有dll都复制过去了,没有用.我本来想是不是这些依

python 调用 shell 命令方法

python调用shell命令方法 1.os.system(cmd) 缺点:不能获取返回值 2.os.popen(cmd) 要得到命令的输出内容,只需再调用下read()或readlines()等  例:a=os.popen(cmd).read() 3.commands 模块,其实也是对popen的封装. 此模块主要有如下方法:commands.getstatusoutput(cmd) 返回(status, output).commands.getoutput(cmd) 只返回输出结果comma

Python 调用DLL操作抄表机_python

# -*- coding: GBK -*- from ctypes import * dll = windll.LoadLibrary('JBA188.dll') a = dll.test() print '测试设备连接状态%s' % a srcName = c_char_p("publish_pd.bin") decName = c_char_p('d:\\publish_pd.bin') b = dll.upfile(srcName,decName) print '将文件上传至计算

Python获取DLL和EXE文件版本号的方法_python

本文实例讲述了Python获取DLL和EXE文件版本号的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: import win32api def getFileVersion(file_name):     info = win32api.GetFileVersionInfo(file_name, os.sep)     ms = info['FileVersionMS']     ls = info['FileVersionLS']     version = '%d.%d

动态电用dll出错-动态调用Dll出错,服务模式

问题描述 动态调用Dll出错,服务模式 用MFC开发一个服务程序,服务程序在应用模式下,动态调用dll正常,然而变成服务模式,会导致服务停止.请问这是怎么回事,请大神指点. 解决方案 主要是你服务运行情况下,进程权限会变高,同时不能直接访问一些用户目录等.服务运行在SESSION0,这个可能会导致你的DLL处理有问题.你需要检查一下DLL的内部代码逻辑 解决方案二: http://www.cnblogs.com/duanshuiliu/archive/2012/07/05/2577402.htm

请教C++调用DLL改用C#调用DLL方法和类型映射

问题描述 现在有一个C++的dll,原来是C++项目使用,现在有一个C#项目想使用这个DLL,调用这个dll的时候一些类型映射,不知道C++中的类型,应该映射成C#中的什么类型,该怎么写,请教大神.C++调用DLL的代码如下主要不知道下面这三种C++中的参数,用C#改写该映射成什么类型constTCHAR*sLogDirconststd::list<conststd::pair<LPCSTR,LPCSTR>>&listParamsParamPair*pPairs reape

C#引入一个DLL后,调用DLL中的函数碰到System.TypeInitializationException

问题描述 我做一个C#项目,项目引入了一个DLL,但是调用时弹出了如下异常Anunhandledexceptionoftype'System.TypeInitializationException'occurredinstanford-corenlp-3.5.2.dll,这个DLL没有问题,在别人的电脑上能正确执行,但是在我的电脑上弹出了上面的错误,请大神指导~ 解决方案 解决方案二:你要看TypeInitializationException.InnerException来确定具体的异常信息解