Hi,

No, that does not work either. It seems nothing (I tried in eVB, too)
except vbNullPtr works. Looks like anything else is still a variant
and vbNullPtr is converted by eVB into something special.

It looks like the function I am trying to call is badly written and
does not accept 0 instead of NULL. This problem hopefully does not
occur with APIs as they accept 0 instead of NULL ? Does anyone have
experience with this ?

The only workaround I can think of is to write a C DLL to wrap the
functions that use null pointers, which is quite ugly and I do not
really want to do that.

Any chance to include vbNullPtr in NS Basic ?

In the meantime - is there any other ZIP compression library that
works with NS Basic ?

Thanks for your help.



--- In [email protected], "George Henne" <g...@...> wrote:
>
> Can you give this a try?
> 
> vbNullPtr = clng(0)
> Call RZipInit (57236465, vbNullPtr)
> 
> I have no idea if this will work, but the first line forces the subtype
> of vbNullPtr to be a long, which may help.
> 
> >Hello George,
> >
> >That is strange, if I try the line 
> >
> >Msgbox typename(vbNullPtr) & " " & vbNullPtr
> >
> >in eVB and run the code I get an error that variable vbNullPtr is not
> >defined. But then when I use the vbNullPtr in a declared function
> >call, it works ! I have triple-checked and did not make a writing
mistake.
> >
> >It looks like eVB is only accepting this constant as a parameter for
> >declared functions.
> >
> >What I am trying to do is to use the Resco ZIP DLL, here is the sample
> >code (NS Basic) :
> >
> >Option Explicit
> >
> >Declare "Sub RZipInit Lib ""RZip.dll"" (ByVal uCode As Long, ByRef
> >lpCallbackFunc As Long)"
> >
> >Call RZipInit (57236465, vbNullPtr)
> >
> >This code works fine in eVB but NS Basic gives me an error that
> >vbNullPtr is not defined. 
> >
> >I have then done further testing in eVB and NS Basic and found that I
> >cannot substitute vbNullPtr with anything else, i.e. Null, nothing,
> >vbNull, 0, vbNullString, vbNullChar. In that case the code runs but
> >the function fails. ONLY vbNullPtr works. I guess that is the reason
> >why Microsoft added the vbNullPtr in the first place.
> >
> >It looks like the code in the RZipInit dll checks this parameter for
> >NULL (as in C++), i.e. 
> >if (param2 == NULL) DoSomething
> >The dll call obviously converts anything except vbNullPtr to something
> >else than NULL (as defined in C)
> >
> >
> >Then... is there any way to use or substitute vbNullPtr in NS Basic or
> >any other trick to make this work ?
> >
> >Thanks for your help.
> >
> >
> >
> >
> >--- In [email protected], "George Henne" <gh@> wrote:
> >>
> >> My copy of eVB has decided it does not want to work anymore, so I
can't
> >> try this here at the moment.
> >> 
> >> Write a short eVB program that does
> >> 
> >> Msgbox typename(vbNullPtr) & " " & vbNullPtr
> >> 
> >> Hopefully, that will give the answer. Let us know, so we can add
this to
> >> the Tech Note.
> >> 
> >> >Hi,
> >> >
> >> >I need to call an function in a dll with a vbNullPtr (this is
> >> >pre-defined in eVB) value in a parameter. What is the substitute for
> >> >vbNullPtr in NS Basic ? I tried Null but that did not work.
> >> >
> >> >Thanks !
> >> >
> >> >
> >> >------------------------------------
> >> >
> >> >Yahoo! Groups Links
> >> >
> >> >
> >> >
> >>
> >
> >
> >
> >------------------------------------
> >
> >Yahoo! Groups Links
> >
> >
> >
>



--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"nsb-ce" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/nsb-ce?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to