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?

You write the following code segment to call a function from the Win32 Application rogramming
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, 
Page 14 of 114    

    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);}

Answer: C

No comments:

Post a Comment