070-536 Free Dumps Study Materials
Question 18: 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", EntryPoint = "MessageBoxA", CharSet = CharSet.Ansi)] public static extern bool
MessageBox(int hWnd, [MarshalAs(UnmanagedType.
LPWStr)]
String text, [MarshalAs(UnmanagedType.LPWStr)]String caption, uint type); }
C. [DllImport("user32", CharSet = CharSet.Unicode)]
public static extern bool MessageBox(int hWnd, String text, 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); }
Correct Answer: C