Cannot access DLL

Posted by: pavi

Cannot access DLL - 11/19/03 03:55 PM

Hi AVi here,

I'am new on this board.
I'am dealing with a dll written in C.

De function is declered in C as follows:

int IOTSVC_API iotsvc_Open(unsigned long *pulHandle, char *csTarget, iotlayout_t *pLayout);

How should i declare this function within VB6 and how can i access the functioncall.

Hopefully someone can help me further with this.

AVI
Posted by: alchemist

Re: Cannot access DLL - 11/20/03 01:48 PM

something like this...

Private Declare Function iotsvc_Open Lib "dll's
name.." (pulHandle as long, csTarget as char,
pLayout as iotlayout_t)

this probly won't work but it should look like this
u might have to play with it abit...
Posted by: SilentRage

Re: Cannot access DLL - 11/22/03 09:42 PM

Not quite, this is the VB declaration:

Private Declare iotsvc_Open Lib "dllname.dll" (pulHandle As Long, ByVal csTarget As String, pLayout As iotlayout_t) As Long

There is no such thing as type 'char' in VB6 and strings must ALWAYS be declared ByVal so that the pointer to the string is passed and not the pointer to the variable.
Posted by: pavi

Re: Cannot access DLL - 11/24/03 02:02 PM

Hi,

I'am still having difficulties in VB with the use of a function call in a certain C DLL.

The DLL function is described below. There is a struct in it aswell.
Hopefully you have an answer to this. I tried a lot but nothing will work.

int IOTSVC_API iotsvc_Open(unsigned long *pulHandle, char *csTarget, iotlayout_t *pLayout);

typedef struct
{
unsigned char ucType;
char csName[16];
unsigned short usTotalNoInputs;
unsigned short usNoAnalogeInputs;
unsigned short usNoDigitalInputs;
unsigned short usTotalNoOutputs;
unsigned short usNoAnalogeOutputs;
unsigned short usNoDigitalOutputs;
} iotmodule_t;

typedef struct
{
unsigned short usTotalNoInputs;
unsigned short usTotalNoOutputs;
unsigned short usNoIOmodules;
iotmodule_t IOmoduleInfo[MAX_NO_IO_MODULES];
} iotlayout_t;

How should i declare this in VB ??
and how can i access the C function in VB ??

Thank for your help

AVI
Posted by: SilentRage

Re: Cannot access DLL - 11/24/03 05:58 PM

I already stated the function declaration in my previous post. Here's the structure declarations:

Private Type iotmodule_t
ucType As Byte
csName As String * 16
usTotalNoInputs As Integer
usNoAnalogeInputs As Integer
usNoDigitalInputs As Integer
usTotalNoOutputs As Integer
usNoAnalogeOutputs As Integer
usNoDigitalOutputs As Integer
End Type

Private Type iotlayout_t
usTotalNoInputs As Integer
usTotalNoOutputs As Integer
usNoIOmodules As Integer
IOmoduleInfo(MAX_NO_IO_MODULES) As iotmodule_t
End Type