|
| C Til Pascal..... Fra : Michael Vilhelmsen |
Dato : 16-08-05 13:25 |
|
Hej
Jeg har en header fil fra C, som indeholder følgende stump kode:
enum {
CONF_PARAM = 1,
CONF_TRACE,
CONF_EXTTRACE,
CONF_EXTTRACE_PLUS
};
Hvad betyder dette ?
At variablerne får værdierne:
CONF_PARAM = 1
CONF_TRACE = 2
CONF_EXTTRACE = 3
CONF_EXTTRACE_PLUS = 4
Michael
--
Best Regards / Venlig hilsen
Michael Vilhelmsen
==========
Best Regards / Venlig hilsen
Michael Vilhelmsen
| |
Arne Vajhøj (16-08-2005)
| Kommentar Fra : Arne Vajhøj |
Dato : 16-08-05 13:54 |
|
Michael Vilhelmsen wrote:
> Jeg har en header fil fra C, som indeholder følgende stump kode:
>
> enum {
> CONF_PARAM = 1,
> CONF_TRACE,
> CONF_EXTTRACE,
> CONF_EXTTRACE_PLUS
> };
>
>
> Hvad betyder dette ?
>
> At variablerne får værdierne:
>
> CONF_PARAM = 1
> CONF_TRACE = 2
> CONF_EXTTRACE = 3
> CONF_EXTTRACE_PLUS = 4
Ja.
enum X { A, B, C };
svarer vel nærmest til:
type
x = (A, B, C);
men jeg tror ikke at man kan bestemme
deres numeriske værdi i Pascal, så sats
på integer.
Arne
| |
Michael Vilhelmsen (16-08-2005)
| Kommentar Fra : Michael Vilhelmsen |
Dato : 16-08-05 14:10 |
|
OK
Mit problem er, at jeg fra en leverandør har fået en DLL fil.
Den indeholder funktioner som jeg kan kalde.
Nogle af dem er simple.
De skal enten ingen parametre have overført, eller bare en Integer.
Dem kan jeg få til at virke ved at skrive dette:
function flxConnect (Int : Integer) : Integer; External 'flxdrv.dll';
Den virker fint.
Så har jeg en anden, som forventer noget input med ovenstående.
Dem kan jeg ikke få til at virke.
F.eks.
DllExport int flxSetConfiguration(
int func, ...);
(Fra header filen fra C).
Jeg ved fra beskrivelse af, at den skal kaldes sådan:
Synopsis
int flxSetConfiguration( int func, ... );
Description
This function is used to setup the communication method in the Flexdriver
Examples
Here’s an example on how to set the Flexdriver to run RS232 with 19200 baud on COM port 1: rc = flxSetConfiguration( CONF_PARAM, RS232_COMM, "1",19200 );
Og præcist CONF_PARAM og RS232_COMM ser sådan ud i header filen:
enum {
CONF_PARAM = 1, // Placement of inifile
CONF_TRACE, // Enable trace
CONF_EXTTRACE, // Enable extensive tracing
CONF_EXTTRACE_PLUS // Enable extensive tracing with append
};
og
enum {
RS232_COMM = 1,
ETHERNET_COMM
};
Jeg har faktisk bare defineret disse som konstanter i delphi.
SÃ¥ledes:
CONF_PARAM = $00000001;
RS232_COMM = $00000001;
ETHERNET_COMM = $00000002;
Men virker gør det ikke.....
Men jeg har da en eller ande kontakt til DLL filen.
Det udstyr, som jeg gerne vil "snakke" reagere da efter hensigten.
Michael
--
Best Regards / Venlig hilsen
Michael Vilhelmsen
==========
Best Regards / Venlig hilsen
Michael Vilhelmsen
| |
Uffe Kousgaard (16-08-2005)
| Kommentar Fra : Uffe Kousgaard |
Dato : 16-08-05 15:21 |
|
"Michael Vilhelmsen"
<Michael.Vilhelmsen.PLEASEREMOVE@Microcom.PLEASEREMOVE.Dk> wrote in message
news:mn.838e7d58eda518d5.11460@Microcom.PLEASEREMOVE.Dk...
>
> function flxConnect (Int : Integer) : Integer; External 'flxdrv.dll';
Her skal du med stor sandsynlighed tilføje stdcall i definitionen - kig
nærmere i Delphi's hjælp. Ellers spørg leverandøren hvilken metode han
anvender for overførsel af registre.
hilsen
Uffe
| |
|
|