Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 13, средняя оценка - 4.77
KuevProger
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 11
#1

Создание DLL в Borland C++ 3.1 - C++

21.09.2009, 06:56. Просмотров 1601. Ответов 2
Метки нет (Все метки)

Приветствую вас многоуважаемые прогеры!) У меня возникла проблема в написании драйвера для контроллера, проблема заключается в выподании ошибки линкера "linker error: undefined symbol libmain in module c0d.asm"

Код

 #include <dos.h>
#include <stdio.h>

long   *ad;
                      
typedef union
 {
  unsigned char c[6];
  unsigned short int i[3];
  } 
 IA;                         

                      
int RWH(unsigned short type, IA &ia, unsigned short *v)  //Прототип драйвера
{               
switch (type){
		case 0x8000: // Первый вызов драйвера
  				return 0;
		case 0x1000: // Последний вызов драйвера
				return 0;
		case 0x2000: // AI RWH & AO RWH инициализация
			     // Можно оставить код пустым или реализовать какие-либо алгоритмы
			     // например, инициализации платы УСО
				return 0;
		case 0x3000: // DI RWH & DO RWH Инициализация
			     // Можно оставить код пустым или реализовать какие-либо алгоритмы
			     // например, инициализации платы УСО
				return 0;
		case 0x4000: // AO RWH Обработка Аналогов - Выходы
			     // Считали адрес ia - в соответсвии с настройками послали в устройство значение v
				return 0;
		case 0x5000: // AI RWH Обработка Аналогов - Входы
			     // Считали адрес ia - в соответсвии с настройками считали из устройства значение и присвоили его в v
				return 0;
		case 0x6000: // DO RWH Обработка Дискретов - Выходы
			     // Считали адрес ia - в соответсвии с настройками послали в устройство значение v
				return 0;
		case 0x7000: // DI RWH Обработка Дискретов - Входы
			     // Считали адрес ia - в соответсвии с настройками послали в устройство значение v
				return 0;
		case 0xa000: // INPUT VOID_RWH - посылка значений в базу каналов
			     // управляя адресом ia посылаем новые значения в атрибуты каналов
				return 0;
		case 0xb000: // OUPUT VOID_RWH - чтение атрибутов из базы каналов
			     // управляя адресом ia считываем значения атрибутов каналов
          			return 0;
		}
return 0;
}

int main (void)
{
  union REGS inr;   
  ad=(long*)MK_FP(0,0x04f0);   // Set call address
  *ad=(long)RWH;               // Driver procedures
  inr.x.ax=0x3100;             // Exit to DOS
  inr.x.dx=800;                // Normal finishing
  intdos(&inr,&inr);           // of the resident code
  return 0;
}
хелпаните кто может)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2009, 06:56     Создание DLL в Borland C++ 3.1
Посмотрите здесь:

C++ Создание потоков в Borland c
Создание dll C++
C++ Создание DLL
C++ Реализовать команду md-создание каталога в Borland C++
Создание resource-only DLL C++
C++ Создание многофайлового проекта в Borland 5.02
создание DLL C++
C++ Создание библиотек DLL
C++ Создание DLL
C++ Создание и использование dll
C++ Создание .dll
Создание DLL со строками на C++ C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
CheshireCat
Эксперт С++
2891 / 1240 / 78
Регистрация: 27.05.2008
Сообщений: 3,340
21.09.2009, 10:59     Создание DLL в Borland C++ 3.1 #2
А BC++ 3.1 вообще умеет создавать DLL ? Что-то меня терзают смутные сомнения..... К сожалению, под рукой этого антиквариата нет
KuevProger
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 11
21.09.2009, 12:15  [ТС]     Создание DLL в Borland C++ 3.1 #3
Умеет еще как)

он умеет создавать, но мне надо 4тоб этот драйвер работал под досом, соответственно его надо делать ехешником и 4тоб он был резидентной программой, кто мне подскажет как это сделать?), да и в добавок ко всему мне надо 4тоб он юзался через Trace Mode 6.04, а он работает только с ДЛЛльками. Как быть кто подскажит?
Yandex
Объявления
21.09.2009, 12:15     Создание DLL в Borland C++ 3.1
Ответ Создать тему
Опции темы

Текущее время: 09:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru