Use another language to call a function: Difference between revisions
Content added Content deleted
m (add link to Delphi for pascal) |
|||
Line 85: | Line 85: | ||
=={{header|C}}== |
=={{header|C}}== |
||
This is a restatement of the problem, it is not a solution. Please remove it. |
|||
<lang c>#include <stdio.h> |
<lang c>#include <stdio.h> |
||
Line 105: | Line 106: | ||
} |
} |
||
}</lang> |
}</lang> |
||
I rewrote the driver as |
|||
<lang c>#if 0 |
|||
I rewrote the driver according to good sense, my style, |
|||
and discussion --Kernigh 15:45, 12 February 2011 (UTC). |
|||
This is file main.c on Autumn 2012 ubuntu linux release. |
|||
The emacs compile command output: |
|||
-*- mode: compilation; default-directory: "/tmp/" -*- |
|||
Compilation started at Mon Mar 12 20:25:27 |
|||
make -k CFLAGS=-Wall main.o |
|||
cc -Wall -c -o main.o main.c |
|||
Compilation finished at Mon Mar 12 20:25:27 |
|||
#endif |
|||
#include <stdio.h> |
|||
#include <stdlib.h> |
|||
extern int Query(char*Data,unsigned*Length); |
|||
int main(int argc,char*argv[]) { |
|||
char Buffer[1024], *pc; |
|||
unsigned Size = sizeof(Buffer); |
|||
if (!Query(Buffer,&Size)) |
|||
fputs("failed to call Query",stdout); |
|||
else |
|||
for (pc = Buffer; Size--; ++pc) |
|||
putchar(*pc); |
|||
putchar('\n'); |
|||
return EXIT_SUCCESS; |
|||
} |
|||
</lang> |
|||
With solution |
|||
<lang c> |
|||
#if 0 |
|||
This is file query.c |
|||
-*- mode: compilation; default-directory: "/tmp/" -*- |
|||
Compilation started at Mon Mar 12 20:36:25 |
|||
make -k CFLAGS=-Wall query.o |
|||
cc -Wall -c -o query.o query.c |
|||
Compilation finished at Mon Mar 12 20:36:26 |
|||
#endif |
|||
#include<string.h> |
|||
int Query(char*Data,unsigned*Length) { |
|||
char*message = "Here am I"; |
|||
unsigned n = strlen(message); |
|||
if (n <= *Length) |
|||
return strncpy(Data,message,(size_t)n), *Length = n, 1; |
|||
return 0; |
|||
} |
|||
</lang> |
|||
And finally, excitement! |
|||
<lang bash>$ gcc main.c query.o -o main && ./main |
|||
Here am I |
|||
$ |
|||
</lang> |
|||
=={{header|Delphi}}== |
=={{header|Delphi}}== |