delphi dll调用问题】的更多相关文章

dll传递string实现方法 delphi中dll传递string的实现方法: dll项目uses第一个引用sharemem单元; 调用的项目uses第一个引用sharemem单元; 调用的单元uses第一个引用sharemem单元; ************************************************************** delphi中dll传递string的实现方法:dll项目uses第一个引用sharemem单元;调用的项目uses第一个引用share…
Pchar是非托管代码,要在.net中调用Delphi dll中的功能,请使用MarshalAs属性告知.net调用PInvoke去转换.net中标准的string类型.如果Delphi dll是Delphi2007以前的版本编译的,则Pchar是Ansi类型:如果Delphi dll是Delphi2009以后的版本编译的,则Pchar是Unicode类型.请看以下实例. Ansi类型: [DllImport("my.dll")] [return: MarshalAs(Unmanage…
c++ DLL 文件,建议用最简单的c++编辑工具.不会加入很多无关的DLL文件.本人用codeblocks+mingw.不像 VS2010,DLL编译成功,调用的时候会提示缺其他DLL. 系统生成的main.h和main.cpp #ifndef __MAIN_H__ #define __MAIN_H__ #include <windows.h> /* To use this exported function of dll, include this header * in your pro…
DLL一定是要C语言导出的符号,也就是extern “C”. 当然,我们都知道DLL调用分为动态调用和静态调用. 动态调用的一般思想为,先LoadLibrary那个你想加载的DLL,然后通过GetProcAddress这个API获取导出函数的地址,赋值给函数指针就可以调用了,这种方式灵活性更高.所有语言都适用. 静态调用就是一般生成DLL会有个导入库(import library).这个编译器要调用该DLL,用链接静态库的方式链接这个导入库就可以了. 其实Delphi也是用了动态调用的方式,那种…
http://blog.163.com/bxf_0011/blog/static/35420330200952075114318/ Delphi 动态链接库的动态和静态调用 为了让人能快速的理解 静态调用.动态调用,现在做一个函数封装在一个DLL中,然后在APPLICATION form里面调用这个函数,这个函数处理两个数的和.用代码和图片说话:代码如下 library Project1; { Important note about DLL memory management: ShareMe…
http://zhidao.baidu.com/question/157196792.html delphi动态调用DLL 写了个1.dll内容如下 library Project2; uses SysUtils, Classes; {$R *.res} function abc(x,y:Integer):Integer;stdcall; begin Result:=x+y; end; exports abc; end. 如何动态调用它呢. 比如想实现Edit3.Text:=IntToStr(a…
delphi dll 源码: library dllres; type char10 = ..] of char; TMydata = packed record id: Integer; name: char10; married: Boolean; salary: Double; end; PMydata = ^TMydata; const RESSTR: ..] of string = ('HELLO', 'COLOR', 'DELPHI', 'shared', 'library'); N…
Delphi程序调用C#.Net编译的DLL并打开窗体(详解)最近用C#.Net写了一个公用模块, 本以为仅提供给.Net程序使用, 但是领导要求把这些功能提供给旧系统使用, 天啦, 几套旧系统全是Delphi写的, 我不想再重复写一次,于是尝试编译成COM组件提供给Delphi调用.花了一下午研究技术, 结果很满意, 调试通过, 特分享受出来给大家学习. 实现步骤: 1.生成密钥文件用于给程序集强名称签名(必须)sn -k MyKey.snk 2.使用强名称签名的Key编译成类库Tester.…
1,问题描述 最近发现vb6调用delphi DLL中的函数并返回字符串时出现问题,有时正常,有时出现?号,有时干脆导致VB程序退出 -- :: 将金额数字转化为可读的语音文字:1转化为1元 ????@ 元 ???? og\SS_log.txt .eP K : 2,原因分析 delphi中函数声明如下: function ss_ConvertMoney2Str(mmje:double): PChar; stdcall; VB6中对应的函数声明如下: Public Declare Function…
delphi 能实现把别的DLL的窗体句柄查到后,贴到PANL之中,此类文章网上不少,而如果是delphi不同版本开发的DLL互调时,一些控件内部的定义有所区别,因为无法(至少目前我觉得理论上不可行)实现不同版本的DLL融合一体式的共用同一个appcation. 因此,跨版本的DLL调用,实际上也就是把DLL当做一个独立程序,而数据连接这些需要在DLL中自己再实现一套,会有一定的麻烦,但是如果不得不这样做,这样的牺牲也是没办法的事(如果谁实现了协调的跨版本数据连接共享,希望留言指点一二) Fun…
第一章 DLL简单介绍由于在目前的学习工作中,需要用到DLL文件,就学习了下,在这里作个总结.首先装简单介绍下DLL:1,减小可执行文件的大小DLL技术的产生有很大一部分原因是为了减小可执行文件的大小.当操作系统进入Windows时代后,其大小已经达到几十兆乃至几百兆.试想如果还是使用DOS时代的单执行文件体系的话一个可执行文件的大小可能将达到数十兆,这是大家都不能接受的.解决的方法就是采用动态链接技术将一个大的可执行文件分割成许多小的可执行程序.2,实现资源共享这里指的资源共享包括很多方面,最…
上次写了如何在VC6.0下对Delphi写的COM进行调用,原本想马上写如何在Delphi中调用VC6.0开发的COM时,由于在写事例程序中碰到了个很怪的问题,在我机子上用VC写的接口程序编译能通过.但是调用就会出现问题,(在VC下调用也是一样的出现).但是用Delphi写的接口程序编译后,不管是在VC下还是在Delphi下调用都没有问题.后来我把VC开发的接口程序编译后,拷贝到其它机子上试,怪事,完全没有问题了.总结后才知道是我机子有点问题.我到现在还没有解决为什么在我的机子上不行,在其它机子…
事情源于有个客户需使用我们C++的中间件动态库来跟设备连接通讯,但是传入以及传出的字符串指针格式都不正确(出现乱码或是被截断),估计是字符编码的问题导致.以下是解决问题的过程: 我们C++中间件动态库的接口函数声明: extern "C" bool __stdcall ExecuteTaskInFile(const char *szTaskID, const char *szInputFile, const char *szOutputFile, bool bSynch); 传入的字符…
一.DLL放在指定目录 在编写C# winform程序中,不免一个项目会有多个工程文件,而这些工程文件之间是相互引用的,所以不想将工程的生成结果(exe或者dll)放在当前工程bin目录下的Debug目录或者Release目录,而是放在一个公共的目录下,比如DLLImport目录下,如何实现这个工程呢,我们知道,如果是C++,我们可以使用cmake来部署我的项目,同样在c#中也可以实现这样的功能,我们只需在每个工程的“属性”----“生成事件”----“生成后事件命令行”写入如下代码即可: IF…
[blog 项目实战派]opencv通过dll调用matlab函数,图片作为参数                   前文介绍了如何“csharp通过dll调用opencv函数,图片作为参数”.而在实际的代码编写过程中,很多时候想把已经写好的matlab函数融合进去,但是依然是将图片作为参数传递比较成为问题.这里我经过一段时间的研究解决了这个问题(目前只解决了灰度图片下的图片传递问题).这个问题包含几个难点,一个是mxmatrix的使用,一个是matlab和opencv对于图片的格式处理是不一样…
[blog 项目实战派]csharp通过dll调用opencv函数,图片作为参数          ​一直想做着方面的研究,但是因为这个方面的知识过于小众,也是由于自己找资料的能力比较弱,知道今天才找到了比较好的资料.一个是thinimage,一个是basework,里面都实现了这里的“csharp通过dll调用opencv函数,并且采用图片作为参数”.这里小结如下.        关于如何“csharp通过dll调用opencv函数”,请参考前面博文,这里主要说如何“采用图片为参数”.    …
C++ dll调用-动态(显式) 废话不说上代码, dll 头文件 j_test.h #pragma once extern "C"_declspec(dllexport) void maopao(int *p, int count); extern "C"_declspec(dllexport) int test(int *p, char* count); extern "C"_declspec(dllexport) int sum(int i…
Delphi动态调用Java的WebService —— 基于“Axis2发布WebService例子(HelloWorld)” uses ComObj; var WsObject: Variant; reslt:String; name:String; begin try //WsObject:=Unassigned; try WsObject := CreateOleObject('MSOSOAP.SoapClient30'); except WsObject := CreateOleObj…
TSC条码打印机C#例程(tsclib.dll调用) //----  program.cs using System;using System.Collections.Generic;using System.Windows.Forms; using System.Runtime.InteropServices;public class TSCLIB_DLL{ [DllImport("TSCLIB.dll", EntryPoint = "about")]    pu…
原文:http://www.cnblogs.com/Pickuper/articles/2050409.html DLL调用有两种方式,一种是静态调用,另外一种是动态调用 (一)静态调用 静态调用是一种显式的调用方式,即在编程的时候便知道了被调用的DLL中的接口函数,在编译链接的时候将DLL与工程生成的exe相关联.以MyApp.dll为例,具体的操作步骤如下: (1)需要的文件有:MyApp.dll,MyApp.lib,MyApp.h (2)假设需要调用MyApp.dll的工程为MyTest,…
Borland.Delphi.dll Borland Delphi Runtime for .NET Imports Borland.DelphiImports Borland.Delphi.UnitsImports Borland.Vcl Borland.Delphi.Units.System.AnsiEncoding.GetBytes Borland.Vcl.Units.SysUtils.InitPlatformId Borland.Vcl.Units.SysUtils.InitSysLoc…
将DAA人脸检测做成动态库以便其他程序调用,采用隐式调用完成. 给出部分关于dll制作的关键代码: 1.DLL 多项目DLL编写注意将其他相关项目设置成静态库,以及各库涉及的版本一致性. DLL.h #define DLL_API __declspec(dllexport) #include<iostream> #include<opencv.hpp> DLL_API void FaceDecter(cv::Mat& source,std::vector<cv::Re…
"Run-Time Check Failure #0 - The value of ESP was not properly saved across a function call.  This is usually a result of calling a function declared with one calling convention with a function pointer declared with a different calling convention.&qu…
转载:http://blog.csdn.net/welcome000yy/article/details/7905463 结合这篇博客:http://www.cnblogs.com/xumenger/p/4372289.html 再结合:http://blog.csdn.net/lailai186/article/details/8770487 不过这篇博客有很多讲解的不清楚,甚至有一些误解的地方,但是将这几篇篇文章结合起来,就可以互相弥补.互相补充,比如: 1. 这篇博客在介绍静态调用的时候,…
新写了一个 Delphi 的 dll 供 C# 程序调用,却发现在使用 Visual Studio 2012 进行调试时,程序会在调用后自动退出. 经过对比,只需要将工程属性中“调试”一页下的“启用 Visual Studio 承载进程" 选项不勾选,即可解决此问题.…
前因后果 调用一门锁的dll实现读取酒店IC卡数据,直接用Readme里的方法出错. 函数声明: 一.读卡函数    ************************ Delphi 调用 *************************    * function DLL_Read:PChar;                external 'AnLock_2012.dll'; stdcall;    *********************************************…
Delphi使用模块化开发,可以采用DLL或者BPL,两者的区别是BPL只能被同版本的Delphi使用,DLL可以被不同版本和不同开发工具的开发的软件调用. 因此我们的软件大多使用Delphi作为界面以及部分DLL模块的开发工具. DLL模块之间通过接口方式调用. 1.对象创建采用工厂模式,每个DLL负责某个对象或若干个对象的创建及释放,例如: DLL工程为http客户端(prjHttp.DLL)模块,通过DLL导出的GetHttpClientFactory获取http客户端工厂接口,通过接口创…
别的没什么,是一定可以调用成功的.但是意外的是,ShowMessage函数在DLL里也可以轻易被调用.此外,Delphi里的var 相当于VC里的引用,需要在函数原型里正确标识,否则传递普通变量甚至常量是不行的. VC++代码: // callDLL.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include "windows.h" int ma…
第一章  DLL简单介绍 由于在目前的学习工作中,需要用到DLL文件,就学习了下,在这里作个总结. 首先装简单介绍下DLL: 1,减小可执行文件的大小 DLL技术的产生有很大一部分原因是为了减小可执行文件的大小.当操作系统进入Windows时代后,其大小已经达到几十兆乃至几百兆.试想如果还是使用DOS时代的单执行文件体系的话一个可执行文件的大小可能将达到数十兆,这是大家都不能接受的.解决的方法就是采用动态链接技术将一个大的可执行文件分割成许多小的可执行程序. 2,实现资源共享 这里指的资源共享包…
dll代码: mydll.dpr library mydll; uses System.SysUtils, System.Classes, uFunction in 'uFunction.pas'; {$R *.res} exports AddInt, AddStr, AddDouble, Add; end. uFunction.pas unit uFunction; interface uses System.SysUtils, System.Classes, Winapi.Messages;…