c # netapi32 netuseadd консольное приложение OK winform NG - PullRequest
0 голосов
/ 18 октября 2011

Я использую объявление ниже в консольном приложении и приложении winforms. Оба 3.5 рамки.

    [DllImport("NetApi32.dll", SetLastError = true, CharSet = CharSet.Unicode)]
    internal static extern NET_API_STATUS NetUseAdd(
        LPWSTR UncServerName,
        DWORD Level,
        ref USE_INFO_2 Buf,
        out DWORD ParmError);

Консольное приложение в порядке, ошибки приложения winform:

Невозможно найти точку входа с именем «NetUseAdd» в DLL «NetApi32.dll»

Я почесал в Интернете и пришел с заявлением ниже. Это 1 дает ту же ошибку для приложения winform.

    [DllImport("NetApi32.dll", 
        SetLastError = true, 
        CharSet = CharSet.Unicode
        )]
    public static extern uint NetUseAdd(
         string UncServerName,
         UInt32 Level,
         USE_INFO_2 Buf,
         out UInt32 ParmError
        );

    [StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
    public struct USE_INFO_2
    {
        public string ui2_local;
        public string ui2_remote;
        public string ui2_password;
        public UInt32 ui2_status;
        public UInt32 ui2_asg_type;
        public UInt32 ui2_refcount;
        public UInt32 ui2_usecount;
        public string ui2_username;
        public string ui2_domainname;
    }

Я запустил dumpbin / export и NetUseAdd есть.

Вся помощь очень ценится.

...