zoukankan      html  css  js  c++  java
  • Delphi如何调用C++写的DLL

     BOOL  WINAPI funname(char *pFileName,char *pID);
    这是C++写的一个DLL里面的函数

    我现在想用delphi调用这个函数
    静态:

    动态:

    现在调试数据不成功
    是不是传参问题呢
    还是函数在delphi里调用不对
    调用应该是成功的
    哪位高手帮帮忙
    --------------------------------------------------------------------------------
    试过了   不行滴说
    --------------------------------------------------------------------------------

    --------------------------------------------------------------------------------

    这样试下,一般char *对应的是PChar,而不是var A: PChar
    --------------------------------------------------------------------------------
    dll可能不是按照标准顺序调用参数的
    --------------------------------------------------------------------------------
    先用vc++做个dll,记得声明函数的时候要_stdcall做前缀,例如:
    _stdcall int TestC(int i);
    _stdcall char* add1(char *s);
    然后将此dll放在delphi程序的目录里,在delphi动态引用此dll的某函数的时候,要用cdecl做后缀;例如:

    ansean基本把这个问题说清楚了。
    1、保证你传递的参数要正确:C++中的char *对应PASCAL中的pchar。
    2:C++中导出的函数的参数调用方式要和你DELPHI中的导入的函数参数调用方式要一致!
     例如:    C++的参数调用方式           对应的DELPHI的参数调用方式
               _declspec                              cdecl
               WINAPI,CALLBACK                        stdcall
               PASCAL                                 pascal
    我遇到过你同样的问题,后来把STDCALL改为cdecl,问题就解决了,因为我在C++导出函数时使用的是“_declspec(dllexport)”,也就是C参数调用格式。

    谢祥选【小宇飞刀(xieyunc)】
  • 相关阅读:
    JAVA整合阿里云OSS实现文件上传功能
    JAVA实现导出excel功能,封装通用导出工具类
    SpringBoot整合quartz实现动态启动,停止定时任务功能
    JAVA微信支付——企业付款(企业向微信用户个人付款、转账)
    Windows系统安装Redis服务
    MySQL设置表中字段的数据唯一性
    XSS工具类,清除参数中的特殊字符
    用伪代码表示第4题中各题的算法
    用N-S图表示第4题中各题的算法
    用N-S图表示第4题中各题的算法
  • 原文地址:https://www.cnblogs.com/xieyunc/p/2793712.html
Copyright © 2011-2022 走看看