博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Delphi的参数修饰const/var/output 与C++的对应关系
阅读量:4007 次
发布时间:2019-05-24

本文共 709 字,大约阅读时间需要 2 分钟。

delphi的const/input和默认的没有修饰, C++都是一样的

delphi的var,对应C++那边是指针,  调用方需要管理内存(负责分配内存及销毁)

        delphi的output , 对应c++那边也是指针 , 如果是 C++调用Delphi DLL, 而Delphi有个形参是out修饰的话, C++调用方传入的指针可以不需要初始化, 因为初始化已经在dll那边完成了. 

    

       比如delphi的dll:

function _PLCReadHoldingRegister(const RegNo: word; out Value: word): boolean; stdcall;begin  Result := False;  if not checkClient then    exit;  g_lock.Enter;  try    Result := g_client.ReadHoldingRegister(RegNo, Value);    SendDebugFmt('_PLCReadHoldingRegister, regNr:%d,val:%d',[RegNo,Value]);  finally    g_lock.Leave;  end;end;
C++那边应该这样定义

typedef bool(__stdcall* _msrPLCReadHoldingRegister) (WORD,WORD&);...WORD lvVal = 0;	if (mRoutines->PLCReadHoldingRegister(30, lvVal)) {    printf(lvVal ...);}

转载地址:http://czkfi.baihongyu.com/

你可能感兴趣的文章
Selenium-Switch与SelectApi接口详解
查看>>
Selenium-Css Selector使用方法
查看>>
Linux常用统计命令之wc
查看>>
测试必会之 Linux 三剑客之 sed
查看>>
Socket请求XML客户端程序
查看>>
Java中数字转大写货币(支持到千亿)
查看>>
Java.nio
查看>>
函数模版类模版和偏特化泛化的总结
查看>>
VMware Workstation Pro虚拟机不可用解决方法
查看>>
最简单的使用redis自带程序实现c程序远程访问redis服务
查看>>
redis学习总结-- 内部数据 字符串 链表 字典 跳跃表
查看>>
iOS 对象序列化与反序列化
查看>>
iOS 序列化与反序列化(runtime) 01
查看>>
iOS AFN 3.0版本前后区别 01
查看>>
iOS AFN 3.0版本前后区别 02
查看>>
iOS ASI和AFN有什么区别
查看>>
iOS QQ侧滑菜单(高仿)
查看>>
iOS 扫一扫功能开发
查看>>
iOS app之间的跳转以及传参数
查看>>
iOS __block和__weak的区别
查看>>