[英]OpenvVMS passing array of char argument to C-function from pascal
我寫了下一個 Pascal 代碼
PROGRAM demo1 (OUTPUT);
%include "sqlr$include:sqlrdef.pas"
VAR
query : VARYING [50] OF CHAR;
BEGIN
query:= "select * from countries";
sqlr$test (query);
END.
“sqlrdef.pas”文件包括
[EXTERNAL] FUNCTION sqlr$test (data : string) : INTEGER; EXTERNAL;
sqlr$test 它是一個 C 函數
unsigned long SQLR$TEST (char *data)
{
printf ("data is [%s] \n", data);
return SQLR$_NORMAL;
}
但是當我在 Pascal 上執行我的程序時,我得到了下一個 output
data is []
為了將參數從 Pascal 正確傳遞給 C 函數,我需要更改什么?
你應該使用
%stdescr query_dsc : [CLASS_S] PACKED ARRAY [$L1..$U1: INTEGER] OF CHAR
和
query : PACKED ARRAY [1..40] OF CHAR VALUE 'select * from countries';
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.