2012-01-23 2 views
0

이 MOZILLA 프로그램의 누락 된 LIB를 도와주십시오. 가 nsICookieManager2 내가nsiCookieManager2 프로그램에 기호가 없습니다.

C 모질라 SDK 감사에서 기존의 모든 libs와 함께 시도하여 쿠키 만들려고 : FFCookie.cpp CL.EXE 코드> \를/I는 "C : \ XULRunner가-SDK의 \ 포함" mozalloc.lib xpcomglue.lib/링크/LIBPATH : "C : \ XULRunner가-SDK의 \ lib에"

기호가 누락 :

FFCookie.obj : 오류 LNK2019 : 확인되지 않은 외부 기호 "공개 : 무효 __thiscall nsCOMPtr_base :: assign_from_gs_contractid_with_er의 ROR (클래스 nsGetServiceByContractIDWithError의 CONST &, 구조체 nsID의 CONST &) " (assign_from_gs_contractid_with_error @ nsCOMPtr_base @@ QA EXABVnsGetServiceByContractIDWithError @@ ABUnsID @@@ Z?) 기능에 언급 된"공공 : nsCOMPtr을 :: nsCOMPtr을 __thiscall (클래스 nsGetServiceByContractIDWithError의 CONST &) " (?? 0 $ nsCOMPtr을 @ VnsICookieManager @@@@ QAE @ ABVnsGe tServiceByContractIDWithError @@@ Z)

FFCookie.obj : 오류 LNK2019 : 확인되지 않은 외부 기호"공개 : 무효 __siscall nsCOMPtr_base : : assign_from_qi (클래스 nsQueryInter 얼굴, 구조체 nsID const를 &) " (assign_from_qi @ nsCOMPtr_base @@ QAEXVnsQueryInterface @@ ABUnsID @@@ Z?) 기능에 언급 된"공공 : __t hiscall nsCOMPtr을 :: nsCOMPtr을 (클래스 nsQueryInterface) "(? ?? 0 $ nsCOMPtr을 @ VnsICookieMan ager2 @@@@ QAE @ VnsQueryInterface @@@ Z) FFCookie.exe : 치명적인 오류 LNK1120 :이 확인되지 않은 외부

#include "nsICookieManager.h" 
#include "nsICookieManager2.h" 
#include "nsServiceManagerUtils.h" 
#include "nsComPtr.h" 
#include "nsNetCID.h" 
#include "nsStringAPI.h" 
#include "mozilla-config.h" 
int main() 
{ 

    nsresult rv; 
    nsCOMPtr<nsICookieManager> cookieManager = do_GetService (NS_COOKIEMANAGER_CONTRACTID, &rv); 
    NS_ENSURE_SUCCESS(rv, rv); 

    if (cookieManager) 
    { 
     nsCOMPtr<nsICookieManager2> cookieManager2 = do_QueryInterface(cookieManager); 
     if (cookieManager2) 
     { 
     cookieManager2->Add(NS_LITERAL_CSTRING("ud.abc.com"), 
         NS_LITERAL_CSTRING("//"), 
         NS_LITERAL_CSTRING("TK"), 
         NS_LITERAL_CSTRING("abc"), 0x1, 0x1, 0, -1); 

     } 
    } 
    return 0; 
} 

질문 :

I 함수 설명서 관련 정보를 찾지 못합니다. 어떤 LIB를 포함시킬 것입니까? (MSDN에서 찾을 수 있습니다)

MOZILLA의 특정 기능에 해당하는 LIB를 찾는 방법에 대한 단서.

답변

0

lib에 문제가 없으며 심볼 누락은 xpcomglue 라이브러리에 정의되어 있습니다. 그러나 XULRunner/Firefox를 컴파일하는 데 사용되는 매개 변수와 일치하지 않는 컴파일 매개 변수가있는 것 같습니다. 컴파일러가 찾고있는 기호에는 매개 변수 설명으로 "QAEX"가 들어 있지만 라이브러리는 "QAIX"로 기호를 정의합니다. the name mangling table에서 컴파일러는 unsigned char을 모질라가 unsigned int으로 예상합니다. 유니 코드 지원없이 응용 프로그램을 컴파일하는 이유가 무엇입니까? main()wmain()으로 변경 하시겠습니까?

+0

유니 코드 플래그로 main()을 wmain()으로 변경해 보았지만 여전히 문제가 해결되지 않았습니다. – dpb

+0

분석 입력을 가져 주셔서 감사합니다. 정말 고마워. XP_WIN 및 XP_WIN32의 일부 해시 정의가 누락되었습니다. – dpb

관련 문제