.NETGURU
DLLImport Problem with LPCSTR and BOOL
Messages   Related Types
This message was discovered on microsoft.public.dotnet.framework.interop.

Post a new message to this list...

Thomas Fisher
Hi All,

I am trying to use LaunchRunner in Baf.dll, it's defined like this:

BOOL CDECL LaunchRunner (LPCSTR szUserDisplay, BOOL* pbEnabled);

I'm trying to use it in a vb.net app but can't make it work. Here are some
attempts I've made:

1)
'This one uses a pointer to a boolean and does no marshaling
<DllImport("Baf.dll")> _
Public Shared Function LaunchRunner(ByVal szUserDisplay As String, ByVal
pbEnabled As Integer) As Boolean
End Function

2)
'This one uses marshaling
<DllImport("Baf.dll")> _
Public Shared Function LaunchRunner (<MarshalAs(UnmanagedType.LPWStr)>
ByVal szUserDisplay As String, <MarshalAs(UnmanagedType.Bool)> ByVal
pbEnabled As Boolean) As <MarshalAs(UnmanagedType.VariantBool)> Boolean
End Function

3)
'Old style declare. Shouldn't function differently than above
Private Declare Auto Function LaunchRunner Lib "Baf" Alias
"LaunchRunner" (ByVal szUserDisplay As String, ByVal pbEnabled As Boolean)
As Boolean

But none of them are working. Here's the code for converting the string for
unmanaged use:

Dim buffer As String = "AB"
buffer.PadRight(255, vbNullChar)

And I'm getting a pointer to a boolean like this:

Dim S As Integer = Marshal.SizeOf(B.GetType)
Dim bPtr As IntPtr = Marshal.AllocHGlobal(S)
Marshal.StructureToPtr(B, bPtr, True)

And here's how I'm calling the method:

LaunchRunner(buffer, bPtr.ToInt32)

Thanks in advance for any help at all on this!

- Tom

Reply to this message...
 
    
Naveen K Kohli
Have you tried passing the BOOL (second parameter) by ref instead of Val.
Thats probably where your call is failing.

<DllImport("Baf.dll")> _
Public Shared Function LaunchRunner(ByVal szUserDisplay As String, ByRef
pbEnabled As Integer) As Boolean

Naveen Kohli
http://www.netomatix.com

"Thomas Fisher" <Click here to reveal e-mail address> wrote in message
news:Click here to reveal e-mail address...
[Original message clipped]

Reply to this message...
 
    
Thomas Fisher
[Original message clipped]

Thanks for the advice.

Just tried it and no go. Same null reference error. Any other ideas?
Anybody?

Reply to this message...
 
 
System.IntPtr
System.Runtime.InteropServices.Marshal
System.Runtime.InteropServices.UnmanagedType




ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
Ad


Need Dot Net Interview Questions?
Ask ExamGuru, Inc. for advice and help on Passing .Net Interviews
.Net Projects
Best-of-breed application framework for .NET projects, developed by ExamGuru, Inc. and ExamGuru IT
Free .net Help
Commission ExamGuru, Inc. and his team for your next bespoke software project
FogBUGZ
The only bug tracking system carefully crafted with one goal in mind: helping teams create great software.
Awesome Tools
If you don't know about these, you're missing out... IT Certification Questions
IT Interview Questions
Free Oracle 10g Training
MCSE Boortcamp
Cisco Study Guides
Cheap Study Guides
Exact Questions
Dot Net Interview Questions
Oracle OCP
Cheap Travel
Designer Perfumes - Wholesale Prices
Free Programming Tutorials
 
ExamGuru IT Solutions - .Net Guru is owned and operated by ExamGuru, Inc., the man behind .Net Guru. If you're in the market for bespoke software or software consultancy, why not get him and his highly trained team to help? - www.examguru.net/ITCertification
 Copyright © ExamGuru, Inc. 2001-2006
Contact Us - Terms of Use - Privacy Policy - www.dot-net-guru.com - www.examguru.net - www.oraclesource.net - www.itinterviews.net - www.examguru.net/ITCertification