我查帮助文档发现:ConvertSidToStringSid函数在"Sddl.h"头文件中申明,在Advapi32.dll中实现,但是我在硬盘上找不到sddl.h文件,于是我想自己申明使用,
可是链接不通过。不知道为什么,望大侠指教。extern "C" WINADVAPI BOOL WINAPI ConvertSidToStringSid(PSID Sid, LPTSTR* StringSid);extern "C" WINADVAPI BOOL WINAPI ConvertSecurityDescriptorToStringSecurityDescriptor(
  PSECURITY_DESCRIPTOR SecurityDescriptor, 
  DWORD RequestedStringSDRevision, 
  SECURITY_INFORMATION SecurityInformation, 
  LPTSTR* StringSecurityDescriptor, 
  PULONG StringSecurityDescriptorLen
);ConvertSidToStringSid 是可以链接通过的,
ConvertSecurityDescriptorToStringSecurityDescriptor 不能链接通过。出错信息:Text1.obj : error LNK2001: unresolved external symbol __imp__ConvertSecurityDescriptorToStringSecurityDescriptor@20
Debug/Text1.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

解决方案 »

  1.   

    你的头文件可能作的不对。用dlltolib做个advapi32.dll的头文件,然后引入头文件,链接lib
      

  2.   

    根据出错信息的提示
     tigerfox(混合体:=初级程序员.郁闷.被开发中) 
    的方法可行。
      

  3.   

    已经加了库文件了呀,而且用Depends工具也能看到Advapi32.dll中输出了相应的函数了。#pragma comment(lib, "Advapi32.lib")大家不如说说怎么调用dll中的函数的方法吧。
      

  4.   

    实在不行就LoadLibrary()然后GetProcAdress()直接用虽然麻烦点但是到没有什么问题
      

  5.   

    我只是想知道为什么link会出错!