Форум программистов, компьютерный форум 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. Просмотров 1626. Ответов 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
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
21.09.2009, 06:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Создание DLL в Borland C++ 3.1 (C++):

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

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

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

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

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

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

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

он умеет создавать, но мне надо 4тоб этот драйвер работал под досом, соответственно его надо делать ехешником и 4тоб он был резидентной программой, кто мне подскажет как это сделать?), да и в добавок ко всему мне надо 4тоб он юзался через Trace Mode 6.04, а он работает только с ДЛЛльками. Как быть кто подскажит?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.09.2009, 12:15
Привет! Вот еще темы с ответами:

Создание DLL - C++
Здравствуйте!!!! Помогите пожалуйста создать dll, проблема заключается в том что вылетает множество след. ошибок 2 IntelliSense:...

Создание dll - C++
Всем привет, лютые и бородатые прогеры :) Потихоньку изучаю язык С. Столкнулся с такой проблемой. Не могу сделать динамическую...

Создание DLL - C++
const __int64 MathArray = {{0, 1}, {2, 3}, {4, 5}}; Ошибок нет. но в .h ругается!!

Создание .dll - C++
Здравствуйте.Нужна помощь в создание dll.Опишите пожалуйста саму структуру dll-файла. Компилятор-g++ 4.8.1,среда-notepad++.


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

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

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