Click to See Complete Forum and Search --> : How to call a 'C' DLL that worked in VB6 and doesn't with Vb.net


cgchris99
September 12th, 2002, 08:16 AM
I have a small app that was written in vb6 that calls a DLL that was written in C. I am having trouble even getting the new vb.net app to compile, let alone run properly.

Here is the declaration in the 'C' source (I didn't write the 'C' dll)

extern __declspec( dllexport ) long WINAPI IS_XferImage(HWND hWnd, BYTE *data, size_t dlen);

Here is what I did in vb.net to declare the call

Declare Function IS_XferImage Lib "CogISCtl" Alias "_IS_XferImage@12" _
(ByVal hWnd As Integer, ByRef data As Byte, ByVal dlen As Short) As Integer

One of the problem I am having is getting the hWnd of the picturebox and passing it to this function.
So I tried this
myStatus = IS_XferImage(picture1.Handle.ToInt32, myData(myPos), maxLen)

If I just use Picture1.Handle, I get an error. It says value of type "system pointer" cannot be converted to an integer

Thanks for any advice

DSJ
September 12th, 2002, 01:34 PM
Looks like that should work... getting any errors?