函数int WINAPI ScanImage(char* pchFilePath)
功能:扫描图片。
参数:pchFilePath为存放扫描后得到的图像路径名(绝对路径)。
返回:0 识别成功;1 扫描发生错误;2 用户输入的文件路径名不符合要求。这是C里面的函数,动态库名为idcarddll.dll,如何改写成delphi的函数。
并且如何调用(如果你会,一定告诉我)。
先谢谢了。
功能:扫描图片。
参数:pchFilePath为存放扫描后得到的图像路径名(绝对路径)。
返回:0 识别成功;1 扫描发生错误;2 用户输入的文件路径名不符合要求。这是C里面的函数,动态库名为idcarddll.dll,如何改写成delphi的函数。
并且如何调用(如果你会,一定告诉我)。
先谢谢了。
解决方案 »
- 关于数据库取值放入cxspreadsheet问题(很复杂)
- D7中是不是已经没有了TNMFTP控件了,找了半天都没有找到
- 关于三层模式下采用borland自带的scktsrvr的问题。急救
- 哪位朋友有关于 rm 格式的资料啊
- Delphi新手做了一个使用SQL Server数据库的程序,如何打包比较合适?
- 请各位大虾推荐几本Delphi参考书。来者有分
- 请大家帮忙~~
- 请问:怎样删除注册表中不启动项 Run- 中的key ?
- 不知这句sql怎么写,关系到两张表的,很简单,拿分拉,谁先回答对给大头
- 为何query1.recordcount有时正确,有时始终是(-1)?
- 如何控制执行顺序?
- 请问关于adodataset.updatebatch
参见《Delphi5开发者指南》第9章
if scanimage(pchar('e:\新建文件夹(3)'))=0 then这样不对吗?应该怎么写?为什么?
静态声明:
function ScanImage(pchFilePath:pchar):smallint;stdcall import 'idcarddll.dll';
动态调用:
function ScanImage(pchFilePath:pchar):smallint;
type
tmyfun=function(p:pchar);smallint;stdcall;
var
h:cardinal;
fun:tmyfun;
begin
result:=4;//如果找不到idcarddll.dll就返回4
h:=loadlibrary(hinstance,'idcarddll.dll');
if h=invalid_handle then exit;
result:=5//如果找不到scanimage入口地址,就返回5
fun:=getprocaddress(h,'ScanImage');
if fun=nil then exit;
result:=fun(pchFilePath);//真实返回值
end;
function ScanImage(pchFilePath:pchar):smallint;
type
tmyfun=function(p:pchar);smallint;stdcall;
var
h:cardinal;
fun:tmyfun;
begin
result:=4;//如果找不到idcarddll.dll就返回4
h:=loadlibrary(hinstance,'idcarddll.dll');
try
if h=invalid_handle then exit;
result:=5//如果找不到scanimage入口地址,就返回5
fun:=getprocaddress(h,'ScanImage');
if fun=nil then exit;
result:=fun(pchFilePath);//真实返回值
finally
freelibrary(h);//一定要加上这个。
end;
end;
function ScanImage(char* pchFilePath): integer external idcarddll.dll'name'ScanImage'
你就可以在Delphi上使用了!!!
function ScanImage(char* pchFilePath): integer; external idcarddll.dll'name'ScanImage'
你就可以在Delphi上使用了!!!
这个方面的内容很多的呀。
关键是如何使用?----------------------------------------------
这样声明:
function ScanImage(char* pchFilePath): integer; external idcarddll.dll'name'ScanImage'
你就可以在Delphi上使用了!!!
例如假设你的C drive有个123的folder:
.......
var
form1: Tform1;
function ScanImage(char* pchFilePath): integer; external idcarddll.dll'name'ScanImage'implementationprocedure Tform1.FormClick(Sender: TObject);
var
i: integer;
begin
i := ScanImage(Pchar('C:\123'));
end;
end.
动态库不可更改,因为我使用的上SDK,所以你的声明方法行不通。
我的方法是这样写的,但是总是不能定位输入点?function scanimage(pchFilePath:pchar):integer;stdcall;external 'idcarddll.dll';
procedure TForm1.Button1Click(Sender: TObject);
var i : integer;
begin
i:=scanimage(pchar('E:\ocr_demo'))
end;
那个函数的帮助是怎么写的?
begin
edit1.text:='e:\ocr_demo\zp.jpg';
scanimage(edit1.text);
end;调用C的动态库一定要区分大小写,如果错了肯定找不到入口。
在C里面的指针(如此SDK),不一定在D中就一定是指针。
问题终于搞定,但是这分怎么分配呢?