Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > C/C++: Системное программирование и WinAPI > перестало Линковаться...


Автор: Neitron 1.2.2006, 12:20
Ошибка
Цитата

[Linker Error] Unresolved external '_SQLAllocHandle' referenced from E:\CPP\GTKBASE REQUEST\PROJECT1.OBJ

Раньше было все ок. Теперь вот это.
odbc32.lib к проекту подключаю... и все равно.

Сам код
Код

#include <vcl.h>
#include <odbcinst.h>
#include <sqlext.h>
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        SQLHENV henv = 0;
        SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
        return 0;
}

Автор: _hunter 1.2.2006, 12:29
а где ты либу подключаеш?
добавь #pragma link odbc32.lib

Автор: Neitron 1.2.2006, 12:35
Добавил... все равно.
п-ц... билдер кажись сносить буду... но думаю что не поможет... Совсем параллелный проект, делал недавно... Все тоже самое... Но в нем всё линкуется а в новом не хочет.

Автор: Neitron 1.2.2006, 18:32
Переустановка билдера не помогла....

Автор: _hunter 1.2.2006, 18:49
попробуй еще #pragma link "odbccp32.lib" добавить

Автор: oper54 1.2.2006, 18:58
#pragma comment (lib, "odbccp32.lib") - не буду утверждать что в билдере сработает, но можешь попробовать
может еще и путь прийдется полный указать

Автор: Neitron 1.2.2006, 19:02
да нет же ))) Всё это фигня... И полный путь указывать незачем, у меня все две либы в корне лежат...
Но проблему я решил. Начал думать в чем же различие прошлого проекта от текущего)))
Вот код в котором все работает нормально)))
Найдите одно отличие.
Код

#include <system.hpp>
#include <odbcinst.h>
#include <sqlext.h>
WINAPI WinMain(HINSTANCE, HINSTANCE, LPSTR, int)
{
        SQLHENV henv = 0;
        SQLAllocHandle(SQL_HANDLE_ENV, NULL, &henv);
        return 0;
}

Автор: oper54 1.2.2006, 19:05
гениально smile

Автор: _hunter 1.2.2006, 19:08
ты что, первый код руками писал ( т.е. галку use vcl не ставил)?

Автор: Neitron 1.2.2006, 19:15

_hunter
Да, первый код, я писал без use vcl, точнее, в модуле работающим с ODBC, VCL полностью отсутсвовал, я уже давно заметил что использование #include <vcl.h> только для доступа к AnsiString например глупо, и компилируется дольше.

Автор: _hunter 1.2.2006, 19:30
угу. а #include <windows.h> удалил сам. ибо нафига нам виндовс. мы же не оконное прилдожение пишем. правильно?
информацию о системных переменных ( и кучу полезных define' ов ) компилятор откуда брать должен? из головы?..

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)