0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 11
1

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

21.09.2009, 06:56. Показов 1857. Ответов 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;
}
хелпаните кто может)
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.09.2009, 06:56
Ответы с готовыми решениями:

DLL в borland c++
//Пример кода в dll: int count; int __stdcall __export f_001(const char* cst) { count++;...

Открыть dll из Borland в Visual Studio
Доброго времени суток! Я сталкнулась с одной проблемой. Помогите пожалуйста разобраться. У меня...

Создание потоков в Borland c
Есть ли возможность создание как минимум двух потоков процессора в borland c в консольке?

Создание многофайлового проекта в Borland 5.02
Кто знает как создать многофайловый проект в среде Borland 5.02

2
Эксперт С++
2921 / 1270 / 114
Регистрация: 27.05.2008
Сообщений: 3,465
21.09.2009, 10:59 2
А BC++ 3.1 вообще умеет создавать DLL ? Что-то меня терзают смутные сомнения..... К сожалению, под рукой этого антиквариата нет
0
0 / 0 / 0
Регистрация: 24.03.2009
Сообщений: 11
21.09.2009, 12:15  [ТС] 3
Умеет еще как)

он умеет создавать, но мне надо 4тоб этот драйвер работал под досом, соответственно его надо делать ехешником и 4тоб он был резидентной программой, кто мне подскажет как это сделать?), да и в добавок ко всему мне надо 4тоб он юзался через Trace Mode 6.04, а он работает только с ДЛЛльками. Как быть кто подскажит?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.09.2009, 12:15

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Реализовать команду md-создание каталога в Borland C++
Нужно сделать так, что бы по команде md (пример: md C:\CyberForum) создавалась определенная папка,...

Русские хелпы по Borland C++ 5.* и Borland C++ Bulder
Подскажите где найти русские хелпы на Borland C++ 5.* и Borland C++ Bulder ...

Borland C++ Builder 6.0 не может найти свои же dll файлы
Недавно установил Borland C++ Builder 6.0 . Всё бы хорошо но при компиляции проэкта пишет что не...

Создание .dll и присоеденение .dll к проекту путем непосредственного написания кода
Здравствуйте, дорогие форумчане! Я прекрасно знаю, как создавать и прикреплять к проекту .dll файлы...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.