1. 程式人生 > >Delphi的引數修飾const/var/output 與C++的對應關係

Delphi的引數修飾const/var/output 與C++的對應關係

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 ...);
}


相關推薦

Delphi引數修飾const/var/output C++的對應關係

delphi的const/input和預設的沒有修飾, C++都是一樣的 delphi的var,對應C++那邊是指標,  呼叫方需要管理記憶體(負責分配記憶體及銷燬)         delphi的output , 對應c++那邊也是指標 , 如果是 C++呼叫Delphi

const引數const返回值const函式

       在C++程式中,經常用const 來限制對一個物件的操作,例如,將一個變數定義為const 的: const  int  n=3; 則這個變數的值不能被修改,即不能對變數賦值。        const 這個關鍵字經常出現在函式的定義中,而且會出現在不同的位置,比如:             

.NETC#的關係

1. .NET .NET框架是一個多語言元件開發和執行環境,它提供了一個跨語言的統一程式設計環境。 .NET框架主要包括部分: (1)公共語言執行時(CLR:Common Language Runtime):包括通用型別系統CTS(Common Type Syste

Android 透明度 ARGB 對應關係

顏色值(#AARRGGBB)透明度百分比和十六進位制對應關係 一張表格,基本都概括,方便查詢和使用   透明度 十六進位制 100% FF 99% FC

Spring Security 配置多個標籤HttpSecurity對應關係

在把以前的xml配置改到java配置,找了半天沒找到…於是試出來以後才在官方文件搜尋到 引用一句話:         http擁有一個匹配URL的pattern(對應.antMatcher()),未指定時表示匹配所有的請求,其下的子

安卓檔案操作api路徑對應關係整理

一、簡述 在安卓開發中,經常會用到一些需要操作檔案的需求,自己一直對api和檔案路徑相關的對應關係模糊不清楚,今天有時間來整理記錄下,免得以後忘記了。 ps:由於手裡沒有可以裝SD卡的機器,所以以

chromoDriverchrome對應關係

----------ChromeDriver v2.34 (2017-12-10)---------- Supports Chrome v61-63 Resolved issue 2025: Incorrect navigation on Chrome v63+ [['P

Android API level version對應關係(最新整理2017.06.26 16:21)

Platform Version API Level VERSION_CODE 中文名稱 Android API 26 26 Android 7.1.1/7.1 25 Nougat Android 7

官方轉譯:截止2018-12-10,chromedriverchrome對應關係

  谷歌驅動下載地址:  http://npm.taobao.org/mirrors/chromedriver/   http://chromedriver.storage.googleapis.com/index.html ————————————————————————————————————————

【Android】多語言適配:語言、名稱、資源對應關係

語言碼_國家碼  ->  語言選擇裡的顯示語言  ->  英文下的語言(國家) -> 簡體中文下的語言(國家)  af ->     Afrikaans ->     Afrikaans ->     南非荷蘭文  af_N

jsp中九個內建物件servlet對應關係及四個作用域

參考: 《jsp&servlet學習筆記.第2版.林信良》 《JSR-245 JavaServer Pages 2.2 Maintenance Release Specification》 隱式物件 說明

Android中解析度,DPI,DPPX對應關係

在Android的UI設計中和頁面程式設計佈局的過程中,我們經常會接觸到解析度,DPI,DP,PX這些概念,有必要對它們進行一下梳理和總結,這篇短小精湛的部落格就用一張圖來概括了這幾個概念的對應關係,以便忘了的時候回來翻翻看。 不多廢話,直接上圖:

android版本API對應關係

        通過下面的兩張表,可以非常容易查詢安卓在版本迭代過程中的Version、Codename、API、Distribution、最初Android版本、Linux核心版本、首次釋出日期等資訊

預處理、const、staticsizeof-C++中const有什麽作用(至少說出3個)

什麽 需要 char 修改 抽象 ons 時間 數據 amp 1:作用如下: (1)const用於定義常量:const定義的常量編譯器可以對其進行數據靜態類型安全檢查。 (2)const修飾函數形式的參數:當輸入參數為用戶自定義類型和抽象數據類型時,應該將“值傳遞”改為“c

淺析const、letvar

常用 ren 這樣的 不同 ons 語句 uncaught for語句 語法   以前無論聲明變量還是常量,總是使用var一勺端,知道接觸了es6之後,發現原來變量、常量的聲明其實是很講究的。   這裏簡單來談談var、const與let。   1、var。var聲明的

【總結】C++C#中的static靜態修飾

this sea const 數據 一切都 UC 限制 有一個 字段 重點 靜態類(sealed+abstract) 靜態構造函數(無參,無限制符,自動執行一次) 靜態變量(類級別,實例無關,靜態存儲區中) 靜態方法(不能被重寫) 靜態局部變量(始終存在) 靜態本質是實

表值引數簡介及 C# 的互動

在 SQL Server 2008 中引入表值引數之前,用於將多行資料傳遞到儲存過程或引數化 SQL 命令的選項受到限制。 開發人員可以選擇使用以下選項,將多個行傳遞給伺服器: 1. 使用一系列單個引數表示多個數據列和行中的值。 使用此方法傳遞的資料量受所允許的引數數量的限制。 SQL Serv

var let/const 變數提升TDZ

我們都知道,在ES5及以前,var關鍵字被用來定義變數,但是到了ES6,就開始使用let/const來定義變數或者常量。那麼這兩者到底有什麼區別呢? var遵循函式作用域,let/const遵循塊級作用域; 由於變數提升,var關鍵字定義的變數在申明之前可以訪問,但得到

C++】CC++中 const常量 - 修改時報錯

#include <stdio.h> #define PAUSE printf("Press Enter key to continue - By WangLei ..."); fgetc(stdin); int main() { const int n = 10; // &

c++ primer plus書之--c++函式, 陣列引數指標的關係2

陣列怎麼在函式的引數中進行傳遞: // simple function #include "iostream" using namespace std; const int Size = 8; // 函式原型, 可以不寫變數名, 變數名也可以與函式定義的變數名不同 int sum_arr(in