2012-01-23 21 views
0

このMOZILLAプログラムのLIBがない場合は、私に手伝ってください。 \コード> cl.exeのFFCookie.cpp/I:私はMozillaのSDK内のすべての既存のlibsと よろしくnsiCookieManager2プログラムのシンボルがありません

C試してみましたnsICookieManager2 を使ってクッキーを作成しようとしてい "C:\のXULRunner-SDKの\は、" mozalloc.lib xpcomglue.lib /リンク/ LIBPATH: "C:\のXULRunner-SDKの\ libに"

記号がありません:

FFCookie.obj:エラーLNK2019:未解決の外部シンボル「パブリック:無効 __thiscall __thiscallのnsCOMPtr :: のnsCOMPtr(:パブリック " 機能で参照 (assign_from_gs_contractid_with_error @ nsCOMPtr_base @@ QA EXABVnsGetServiceByContractIDWithError @@ ABUnsID @@@ Z?)" nsCOMPtr_base :: assign_from_gs_contractid_with_erのROR(クラスnsGetServiceByContractIDWithErrorのconstの&、構造体NSIDのconstの&)クラス nsGetServiceByContractIDWithErrorのconstの&) "? (?? 0 $のnsCOMPtr @ VnsICookieManager @@@@ QAE @ ABVnsGe tServiceByContractIDWithError @@@ Z)

FFCookie.obj:エラーLNK2019:未解決の外部シンボル" パブリック:無効 __thiscall 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:2未解決の外部

#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にMozillaがunsigned intであると予想しています。その理由は、Unicodeサポートなしでアプリケーションをコンパイルしていると思われます。main()wmain()に変更しますか?

+0

UNICODEフラグでmain()をwmain()に変更しようとしましたが、依然として問題が解決されていません – dpb

+0

あなたの分析入力をありがとうございます。本当に感謝します。私はいくつかのハッシュdefs XP_WINとXP_WIN32が欠けていた – dpb