Search:
Namespaces
Discussions
.NET v1.1
Feedback
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
Ad
MBR BootFX
Best-of-breed application framework for .NET projects, developed by Matthew Baxter-Reynolds and MBR IT
Copyright © Matthew Baxter-Reynolds 2001-2008. '.NET 247 Software Development Services' is a trading style of MBR IT Solutions Ltd.
Contact Us
-
Terms of Use
-
Privacy Policy
-
www.dotnet247.com