Символы, отсутствующие для программы nsiCookieManager2 - PullRequest
0 голосов
/ 23 января 2012

Пожалуйста, помогите мне с отсутствующими LIB для этой программы MOZILLA. Попытка создать cookie с помощью nsICookieManager2 Я пытался со всеми существующими библиотеками в Mozilla SDK Привет

C: \ Code> cl.exe FFCookie.cpp / I "C: \ xulrunner-sdk \ include" mozalloc.lib xpcomglue.lib / link / LIBPATH: "C: \ xulrunner-sdk \ lib"

Символы отсутствуют:

FFCookie.obj: ошибка LNK2019: неразрешенный внешний символ "public: void __thiscall nsCOMPtr_base :: assign_from_gs_contractid_with_er ror (класс nsGetServiceByContractIDWithError const &, struct nsID const &) " (? Assign_from_gs_contractid_with_error @ nsCOMPtr_base @@ QA EXABVnsGetServiceByContractIDWithError @@ ABUnsID @@@ Z) указан в функция "public: __thiscall nsCOMPtr :: nsCOMPtr (класс nsGetServiceByContractIDWithError const &) " (?? 0? $ NsCOMPtr @ VnsICookieManager @@@@ QAE @ ABVnsGe tServiceByContractIDWithError @@@ Z) * ​​1010 *

FFCookie.obj: ошибка LNK2019: неразрешенный внешний символ "public: void __thiscall nsCOMPtr_base :: assign_from_qi (класс nsQueryInter face, struct nsID const &) " (? Assign_from_qi @ nsCOMPtr_base @@ QAEXVnsQueryInterface @@ ABUnsID @@@ Z) ссылка в функции "public: __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;
}

Вопросы:

Я не нахожу никакой информации с документацией функций относительно того, какую LIB включить (как я нахожу в MSDN)

Любая подсказка о том, как определить LIB, соответствующую определенной функции для MOZILLA.

1 Ответ

0 голосов
/ 23 января 2012

Проблема не с библиотекой lib, отсутствует символ, определенный в библиотеке xpcomglue.Однако у вас, похоже, есть некоторые параметры компиляции, которые не соответствуют параметрам, используемым для компиляции XULRunner / Firefox.Символы, которые ищет ваш компилятор, содержат "QAEX" в качестве описания параметра, тогда как библиотека определяет их с помощью "QAIX".Глядя на таблицу искажения имен , ваш компилятор ожидает unsigned char там, где Mozilla имеет unsigned int.Я подозреваю, что причина в том, что вы компилируете свое приложение без поддержки Unicode - измените main() на wmain()?

...