Question:You write the following code segment to call a function from the Win32 Application Programming Interface (API) by using platform invoke.
string personName = "N?el";
string msg = "Welcome " + personName + " to club ''!";
bool rc = User32API.MessageBox(0, msg, personName, 0);
You need to define a method prototype that can best marshal the string data.
Which code segment should you use?
 

A [DllImport("user32", CharSet = CharSet.Ansi)]
public static extern bool MessageBox(int hWnd,
String text,
String caption,
uint type);} 

B [DllImport("user32", CharSet = CharSet.Unicode)]
public static extern bool MessageBox(int hWnd
String text,
 String caption,
uint type);

C [DllImport("user32", EntryPoint = "MessageBoxA",
CharSet = CharSet.Ansi)]
public static extern bool MessageBox(int hWnd,
[MarshalAs(UnmanagedType.LPWStr)]String text,
 [MarshalAs(UnmanagedType.LPWStr)]String caption,
uint type);} 

D [DllImport("user32", EntryPoint = "MessageBoxA",
CharSet = CharSet.Unicode)]
public static extern bool MessageBox(int hWnd,
[MarshalAs(UnmanagedType.LPWStr)]String text,
[MarshalAs(UnmanagedType.LPWStr)]String caption,
uint type);

+ Answer
+ Report
Total Preview: 1229

Copyright © 2024. Powered by Intellect Software Ltd