powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / lnk1120?
10 сообщений из 10, страница 1 из 1
lnk1120?
    #34133988
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть консольное приложение (ms vc 98), есть dll в которой есть класс CA, у которого есть функция Open

Код: plaintext
1.
2.
3.
4.
5.
6.
class AFX_EXT_CLASS CA
{
    CA::CA(){}
    CA::~CA(){}
    
    bool Open(/*параметры*/);
}

в консольном приложение прописана lib'a dll-шки, сама dll лежит там где должен появиться в итоге exe-файл, хэдер-файл класса валяется в папке проекта (exe)

в консольном приложении делаю

Код: plaintext
1.
2.
3.
4.
5.
int main(void)
{
    CA ca;
    return  0 ;
}

и все прекрасно работает, но если делаю

Код: plaintext
1.
2.
3.
4.
5.
6.
int main(void)
{
    CA ca;
    bool f = ca.Open(/*параметры*/);
    return  0 ;
}

то получаю

error LNK2001: unresolved external symbol "__declspec(dllimport) public: bool CA::Open(/*параметры*/)" (__imp_?Open@CA@@QAEPAUHKEY__@@PAU2@PBDK@Z)
prog.exe : fatal error LNK1120: 1 unresolved externals

????
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
lnk1120?
    #34134017
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Непонятно, что смущает? Пока не вызывалась ни один метод CA - все хорошо. Вызвали - ссылка не удовлетворилась.
Значит lib - кривой, либо сигнатура в lib не совпадает. Поизучай содержимое lib.
...
Рейтинг: 0 / 0
lnk1120?
    #34134108
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrewНепонятно, что смущает? Пока не вызывалась ни один метод CA - все хорошо. Вызвали - ссылка не удовлетворилась.
Значит lib - кривой, либо сигнатура в lib не совпадает. Поизучай содержимое lib.
lib мой от моей же dll, которая была скомпилена нормально и в тот же момент была передана консольному приложению с патрохами.
...
Рейтинг: 0 / 0
lnk1120?
    #34134236
maXmo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
private: bool Open(...);
...
Рейтинг: 0 / 0
lnk1120?
    #34134293
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maXmoprivate: bool Open(...);
ни в коем случае

а это ничего что dll писалась в ms vc 2005, а юзается в ms vc 98?
...
Рейтинг: 0 / 0
lnk1120?
    #34134346
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrumа это ничего что dll писалась в ms vc 2005, а юзается в ms vc 98?
Интересные детали, видимо все-таки надо порыться в опциях 2005, сравнивая с опциями 98 и что-то подправить и для компилятора и для линкера.
Если бы dll готовилась в BCB, я бы просто сказал: кранты.
...
Рейтинг: 0 / 0
lnk1120?
    #34134352
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вызываю функции, которые вне класса, то все вызывается
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
lnk1120?
    #34134426
pandrew
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Cerebrumесли вызываю функции, которые вне класса, то все вызывается
Так это всегда так: более-менее стандартно экспортируются С-функции, с библиотеками классов постоянная головная боль.
Т.о. если интерес академический , откажись в пользу extern "C"{}. Если просто надо - откомпилируй одной версией, либо подбирай опции (в рамках одной линейки должна быть преемственность).
К сожалению MS VC не мой профиль.
...
Рейтинг: 0 / 0
lnk1120?
    #34134453
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
pandrewК сожалению MS VC не мой профиль.
но все равно спасибо, что не остался равнодушным
...
Рейтинг: 0 / 0
lnk1120?
    #34134468
Фотография Cerebrum
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
интересно, прокатит если и функции в классе обозначить как экспортируемые?
--------------------------------------------------------------
[подпись с другого сайта]
...
Рейтинг: 0 / 0
10 сообщений из 10, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / lnk1120?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]