Старый код c ATL / COM dll - PullRequest
       42

Старый код c ATL / COM dll

0 голосов
/ 12 февраля 2012

У меня есть старый cll, который я хочу преобразовать в COM-сервер.

Он предоставляет только одну функцию.

Это то, что я сделал: я создал проект ATL вВ VS 2010 добавлен простой объект ATL с функцией-оболочкой.Я добавил источники и заголовки c. В функции-обертке, которую я вызываю функцией c, я добавил прототип полной функции, как описано в http://www.parashift.com/c++-faq-lite/mixing-c-and-cpp.html#faq-32.5.

Появляется следующая ошибка:

Неразрешенный внешний символ, на который ссылаютсяв функции

Я все перепробовал.

Есть идеи?

Ответы [ 2 ]

1 голос
/ 12 февраля 2012

Вы можете попробовать скомпилировать dll-файл в обычный win32-dll, а затем вызвать его из вашей dll-библиотеки через обертку.Вам потребуется 2 dll, но если оригинальная DLL будет хорошо скомпилирована, вы сможете использовать ее из COM.

1 голос
/ 12 февраля 2012

Вам необходимо использовать extern "C" при включении c-source:

extern "C" {
    #include "header.h"
}
...