win32

应用程序的打包和发行

戏子无情 提交于 2020-01-26 17:16:55
Java应用程序可以脱离Eclipse运行,但在运行之前要把应用程序打成一个JAR包,Eclipse下打包的方式方法和标准的AWT/SWUNG程序基本一样,主要有以下几点: a.MANIFEST.MF(舱单):打包清单文件。它是打包的关键文件,在运行Java应用程序时,需要根据此文件的信息来查找入口类和支持库。 b.支持库:如果Java应用程序用到了一些Eclipse包,那么就必须将这些包也复制到程序运行目录,否则程序无法运行,如SWT组件支持库swt.jar,JFace组件支持库jface.jar等,这些JAR包都要在MANIFEST.MF文件中设置好。 c.本地化文件:如果用到SWT组件,还需要将SWT的本地化文件swt-win32-3235.dll(3235是版本号)复制到程序运行目录,否则程序无法运行。 打包的具体的操作步骤 1.创建清单文件 Eclipse提供了用于打包项目的“导出”向导,但运行向导之前需要创建一个清单。在项目根目录下(也可以是其他目录)新建清单文件manifes.txt(可任意名)。Eclipse向导在打包时,会自动地将manifes.txt的内容复制到JAR包的META-INF目录的MANIFEST.MF文件中。manifes.txt内容如下: Manifest-Version: 1.0 Class-Path: ./lib/org.eclipse

语法错误这是什么问题啊大佬们

余生颓废 提交于 2020-01-17 04:26:22
************** 异常文本 ************** System.Runtime.InteropServices.COMException (0x800A03EA): 语法错误 在 MSScriptControl.IScriptControl.AddCode(String Code) 在 C4DTranslate.Form1.N9S5Ygxtv(String , String ) 在 C4DTranslate.Form1.GoogleTranslate(String text, String fromLanguage, String toLanguage) 在 C4DTranslate.Form1.mWK1f7rwK(Object , EventArgs ) 在 System.Windows.Forms.Control.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnClick(EventArgs e) 在 System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) 在 MetroFramework.Controls.MetroButton.OnMouseUp(MouseEventArgs e) 在 System.Windows.Forms

win32API多线程编程

我只是一个虾纸丫 提交于 2020-01-12 20:03:23
原文1: https://blog.csdn.net/gengshenghong/article/details/6945216 原文2: https://www.cnblogs.com/Tony100K/p/11758936.html Ref: MSDN: http://msdn.microsoft.com/zh-cn/library/y6h8hye8(v=VS.100) 一、win32多线程的创建 Win32多线程的创建方法主要有: (1)CreateThread() (2)_beginthread()&&_beginthreadex() (3)AfxBeginThread() (4)CWinThread类 1、CreateThread() 百度百科: http://baike.baidu.com/view/1191444.htm 函数原型: HANDLE CreateThread(   LPSECURITY_ATTRIBUTES lpThreadAttributes,   DWORD dwStackSize,   LPTHREAD_START_ROUTINE lpStartAddress,   LPVOID lpParameter,   DWORD dwCreationFlags,   LPDWORD lpThreadId); } 头文件:Windows.h

geos编译问题

元气小坏坏 提交于 2020-01-08 17:58:51
gdal编译geos的时候会用到geos_c_i.lib这个文件,我用cmake编译的时候仅仅产生geos_c.lib这个文件,所以只能使用nmake的编译方式来编译geos库,nmake编译geos的时候出现了很多问题,最终解决了这些问题,成功编译了goes的win32/x64和debug/release四个版本。现在记录一下编译时候的要点: 1、编译的geos版本是3.4.0,windows的环境,VS2010下 2、在编译win32的时候打开的是vs2010的win32的命令提示工具, 输入vcvars32.bat 输入autogen.bat 输入 nmake /f makefile.vc (nmake /f makefile.vc BUILD_DEBUG=YES)编译完成 3、在编译x64的时候,首先把win32编译过的工程删除,重新拷贝一份新的代码进来,因为win32编译完之后会影响x64的编译,导致x64编译失败,然后打开的是vs2010的x64的命令提示工具, 输入 vcvars64.bat 输入 autogen.bat 输入 nmake /f makefile.vc WIN64=YES (nmake /f makefile.vc WIN64=YES BUILD_DEBUG=YES) 这样就使用nmake编译了完整的geos库。 来源: https://www

VS2008下编写调试dll的一个实例(参考msdn) .

廉价感情. 提交于 2020-01-04 21:13:19
演练:创建和使用动态链接库 在本演练中,您将创建一个动态链接库 (DLL),其中包含可供其他应用程序使用的有用例程。使用 DLL 是一种重用代码的绝佳方式。您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。 本演练使用本机 C++。有关使用本机 C++ 创建静态库的演练,请参见 演练:创建和使用静态库 。有关使用面向公共语言运行库的 Visual C++ 的演练,请参见 演练:创建和使用托管程序集 。 本演练涵盖以下内容: 创建新的动态链接库 (DLL) 项目 向动态链接库添加类 创建引用动态链接库的应用程序 在控制台应用程序中使用类库的功能 运行应用程序 先决条件 本主题假定您具备 C++ 语言的基础知识。 创建新的动态链接库 (DLL) 项目 从“文件”菜单中,选择“新建”,然后选择“项目…”。 从“项目类型”窗格中选择“Visual C++”下的“Win32”。 从“模板”窗格中,选择“Win32 控制台应用程序”。 为项目选择一个名称,如 “MathFuncsDll” ,并将其输入“名称”字段。为解决方案选择一个名称,如 “DynamicLibrary” ,并将其输入“解决方案名称”字段。 按“确定”启动 Win32 应用程序向导。在“Win32 应用程序向导”对话框的“概述”页中,按“下一步”。 从“Win32

创建一个动态链接库 (DLL),使用VS2010

烂漫一生 提交于 2020-01-04 21:13:03
在本演练中,您将创建一个动态链接库 (DLL),其中包含可供其他应用程序使用的有用例程。使用 DLL 是一种重用代码的绝佳方式。您不必在自己创建的每个程序中重新实现这些例程,而只需对这些例程编写一次,然后从需要该功能的应用程序引用它们即可。 本演练使用本机 C++。有关使用本机 C++ 创建静态库的演练,请参见 演练:创建和使用静态库 。有关使用面向公共语言运行库的 Visual C++ 的演练,请参见 演练:创建和使用托管程序集 。 本演练涵盖以下内容: 创建新的动态链接库 (DLL) 项目 向动态链接库添加类 创建引用动态链接库的应用程序 在控制台应用程序中使用类库的功能 运行应用程序 先决条件 本主题假定您具备 C++ 语言的基础知识。 创建新的动态链接库 (DLL) 项目 从“文件”菜单中,选择“新建”,然后选择“项目…”。 从“项目类型”窗格中选择“Visual C++”下的“Win32”。 从“模板”窗格中,选择“ Win32 控制台应用程序 ”。 为项目选择一个名称,如 “ MathFuncsDll ” ,并将其输入“名称”字段。为解决方案选择一个名称,如 “DynamicLibrary” ,并将其输入“解决方案名称”字段。 按“确定”启动 Win32 应用程序向导。在“Win32 应用程序向导”对话框的“概述”页中,按“下一步”。 从“Win32 应用程序向导”中的

Win32串口编程 转

依然范特西╮ 提交于 2019-12-27 11:07:47
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。   在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。本文我们只介绍API串口通信部分。   串口的操作可以有两种操作方式:同步操作方式和重叠操作方式(又称为异步操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而重叠操作方式,API函数会立即返回,操作在后台进行,避免线程的阻塞。 无论那种操作方式,一般都通过四个步骤来完成: (1) 打开串口 (2) 配置串口 (3) 读写串口 (4) 关闭串口 (1) 打开串口   Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的原型为: HANDLE

Win32串口API

筅森魡賤 提交于 2019-12-26 20:34:38
在工业控制中,工控机(一般都基于Windows平台)经常需要与智能仪表通过串口进行通信。串口通信方便易行,应用广泛。 一般情况下,工控机和各智能仪表通过RS485总线进行通信。RS485的通信方式是半双工的,只能由作为主节点的工控PC机依次轮询网络上的各智能控制单元子节点。每次通信都是由PC机通过串口向智能控制单元发布命令,智能控制单元在接收到正确的命令后作出应答。 在Win32下,可以使用两种编程方式实现串口通信,其一是使用ActiveX控件,这种方法程序简单,但欠灵活。其二是调用Windows的API函数,这种方法可以清楚地掌握串口通信的机制,并且自由灵活。本文我们只介绍API串口通信部分。 串口的操作可以有两种操作方式:同步操作方式和重叠操作方式(又称为异步操作方式)。同步操作时,API函数会阻塞直到操作完成以后才能返回(在多线程方式中,虽然不会阻塞主线程,但是仍然会阻塞监听线程);而重叠操作方式,API函数会立即返回,操作在后台进行,避免线程的阻塞。 无论那种操作方式,一般都通过四个步骤来完成: 打开串口 配置串口 读写串口 关闭串口 (1) 打开串口 Win32系统把文件的概念进行了扩展。无论是文件、通信设备、命名管道、邮件槽、磁盘、还是控制台,都是用API函数CreateFile来打开或创建的。该函数的原型为: HANDLE CreateFile( LPCTSTR

delphi DLL动态链接库

末鹿安然 提交于 2019-12-22 08:43:03
假设有两个应用程序,它们都要调用一个单元中的一个方法,那么这两个应用程序都要在Uses语句中引用该单元。如果同时运行这两个应用程序,这个方法就会在内存中存在两份,这显然是内存的一种浪费,使用动态链接库就可以解决这个问题。 动态链接库DLL与其他应用程序通过动态链接技术来共享代码。如果一个应用程序使用了动态链接库,Win32系统保证内存中只有DLL的一份复制品,这是通过内存映射文件实现的。DLL首先被调入Win32系统的全局堆栈,然后映射到调用这个DLL的进程的地址空间,在Win32系统中,每个进程拥有自己的32位线性地址空间。如果一个DLL被多个进程调用,每个进程都会收到该DLL的一份映射。在Win32中,DLL可以看作是每个进程自己的代码。但是这并不是说物理内存中会分配DLL的多个实例。 DLL的优点: (1) 共享代码、资源和数据 (2) 隐藏实现的细节 例如我们创建一个引用DLL的例子 (1) 新建――other---DLL Wizard 命名为:DLLTest (2) 写一个加法函数 uses SysUtils, Classes; function AddMethod(Num1,Num2 : Integer) : Integer ;stdcall; //定义简单加法函数 begin Result := Num1 + Num2; end; exports //exports

python批量将csv文件转xls

穿精又带淫゛_ 提交于 2019-12-19 01:38:38
csv2xls源代码: import win32com.client as win32 import os.path import os def csv2xls(): rootdir = r"D:\poi\云南昆明" # 需要转换的xls文件存放处 rootdir1 = r"C:\Users\giser\Desktop\新建文件夹" files = os.listdir(rootdir) # 列出xls文件夹下的所有文件 num = len(files) # 列出所有文件的个数 for i in range(num): # 按文件个数执行次数 kname = os.path.splitext(files[i])[1] # 分离文件名与扩展名,返回(f_name, Nname = os.path.splitext(files[i])[0] if kname == '.csv': fname = rootdir + '\\' + files[i] # 合成需要转换的路径与文件名 fname1 = rootdir1 + '\\' + Nname # excel = win32.gencache.EnsureDispatch('Excel.Application') # 调用win32 wb = excel.Workbooks.Open(fname) # 打开需要转换的文件 wb