Problem beim Linking



  • Hallo rundherum,
    ich habe ein Problem beim Linken des folgenden Programms:

    #include <stdio.h>
    #include <stdlib.h>
    #include <aclapi.h>
    #include <lmerr.h>
    #include <windows.h>
    using namespace System;
    
    int main(array<System::String ^> ^args)
    {
        LPWSTR mystr = L"c:\\autoexec.bat";
        GetNamedSecurityInfo(mystr, SE_FILE_OBJECT,DACL_SECURITY_INFORMATION, NULL, NULL, NULL, NULL, NULL);
        return 0;
    }
    

    Die Fehlermeldung lautet:

    Verknüpfen...
    clrtest.obj : error LNK2028: Nicht aufgelöstes Token (0A00000B) ""extern "C" unsigned long __stdcall GetNamedSecurityInfoW(wchar_t *,enum _SE_OBJECT_TYPE,unsigned long,void * *,void * *,struct _ACL * *,struct _ACL * *,void * *)" (?GetNamedSecurityInfoW@@$$J232YGKPA_WW4_SE_OBJECT_TYPE@@KPAPAX2PAPAU_ACL@@32@Z)", auf das in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP01AP01APAAVString@System@@@Z)" verwiesen wird.
    clrtest.obj : error LNK2019: Verweis auf nicht aufgelöstes externes Symbol ""extern "C" unsigned long __stdcall GetNamedSecurityInfoW(wchar_t *,enum _SE_OBJECT_TYPE,unsigned long,void * *,void * *,struct _ACL * *,struct _ACL * *,void * *)" (?GetNamedSecurityInfoW@@$$J232YGKPA_WW4_SE_OBJECT_TYPE@@KPAPAX2PAPAU_ACL@@32@Z)" in Funktion ""int __clrcall main(cli::array<class System::String ^ >^)" (?main@@$$HYMHP01AP01APAAVString@System@@@Z)".

    Leider sagen mir diese Meldungen nicht besonders viel... ich setze Visual C++ Express Edition und das SDK für Windows Server 2003 R2 ein.

    Vielleicht hat einer von euch eine Idee?



  • Füge noch ein

    #pragma comment(lib, "Advapi32.lib")
    

    ein.

    PS: Du verwendest explizit LPWSTR, aber die Funktion will einen LPCTSTR!

    PPS: Und wenn Du nur WinAPI machst, solltest/brauchst Du keine C++/CLI Projekt erzuegen!



  • Richtig gute Hilfe, vielen Dank!


Anmelden zum Antworten