Использование COM dll в проекте Qt - PullRequest
0 голосов
/ 11 июля 2011

В vs c ++ я использовал следующий код, чтобы использовать некоторые функции в dll-файле, у которых нет заголовка

#import "dll path"
HRESULT hr = CoInitialize(NULL);

    if (hr==S_OK)
    {cout<<"INITIALIZED\n";}

    Trans_ATLLib::ITransCriptPtr Trans;
    hr = Trans.CreateInstance(__uuidof(Trans_ATLLib::TransCript));
    if (hr==S_OK)
    {cout<<"INSTANCE CREATED\n";}

    hr =Trans->EnableLastCharTashkeel(true);
    if (hr==S_OK)
    {cout<<"EnableLastCharTashkeel DONE\n";}

    hr =Trans->EnableEmphaticLAM_RAA(true);
    if (hr==S_OK)
    {cout<<"EnableEmphaticLAM_RAA DONE\n";}

    VARIANT_BOOL test;
    test = Trans->SetText(arabic_string);
    if (test==0)
    {cout<<"error in setting the arabic sting\n";}

    string result;
    result = Trans->GetResult();

    istringstream iss(result);
    vector<string> phonemes;
    copy(istream_iterator<string>(iss),istream_iterator<string>(),back_inserter<vector<string> >(phonemes));
    return phonemes;
}

Но я обнаружил, что Qt не использует тот же метод.

Может ли кто-нибудь помочь мне вызвать эти функции в Qt?

Заранее спасибо.

1 Ответ

0 голосов
/ 12 июля 2011

Если вы используете c ++ - сделайте то же самое! Qt - это набор библиотек, а не другой язык программирования - вызывайте winApi везде, где вам нужно, но не забывайте, что он не переносим

...