Консультация № 176435
01.02.2010, 21:01
0.00 руб.
0 11 0
здравствуйте помогите пожалуйста, не могу устранить ошибку:
в этом простом примере я попытался создать минимальную программу с использованием Turbo Vision, использовался дистрибутив Borland C++ 3.1 ОС Windows XP Sp3 Winsoft 2010

#define Uses_TApplication
#include <tv.h>

class TMyApp : рublic TApplication
{
рublic: TMyApp();
};

TMyApp::TMyApp() : TProgInit( &TMyApp::initStatusLine,
&TMyApp::initMenuBar,
&TMyApp::initDeskToр)
{ }

int main()
{
TMyApp myApp;
myApp.run();
return 0;
}
компиляция прошла успешно, а при выполнении программы компилятор выдал следущее:
Linker Warning: No module definition file specified: using defaults
Linker Error: Undefined symbol _heapcheck in module NEW
что делать не знаю...

Обсуждение

Неизвестный
02.02.2010, 09:21
общий
вопрос N 176435 снимаю с обсуждения, я разобрался в чем была проблема, но у меня есть вопрос другой, компилятор не поддерживает кирилицу
что нужно сделать чтобы решить эту проблему...
Неизвестный
02.02.2010, 13:57
общий
Савченко Виталий Александрович:
Что значит
Цитата: 320759
компилятор не поддерживает кирилицу
? Уточните, пожалуйста, где Вы хотите ее использовать. У меня в свое время все получалось — русские меню, диалоги, сообщения. Ну а если Вы хотите кириллические идентификаторы в программе — то да, не поддерживает.
Неизвестный
02.02.2010, 14:11
общий
английский интерфейс меня вполне устраивает, меня интересует возможность писать комментарии на русском языке, компилятор воспринимает только латинский алфавит, на русском написать я ничего не могу пишет все на английском.
Неизвестный
02.02.2010, 16:39
общий
Савченко Виталий Александрович:
Компилятор тут ни при чем. У Вас не настроена поддержка русского языка в консоли DOS.
Вот сейчас проверил у себя (WinXP (english) + SP3) - консоль DOS специально не настраивал, русский языке в консоли есть.
Разве что, в "Regional and Language Options" у меня установлен русский язык и на вкладке "Advanced" для не-уникодовских программ тоже выбран русский.

[offtop]
Правила 1956 г.:
Пишется ни в устойчивых сочетаниях, в которые входят местоимения, например: остался ни при чём, остался ни с чем, пропал ни за что.

[/offtop]
Неизвестный
02.02.2010, 22:53
общий
Я давенько уже сделал так, как в совете:

Код:
;Если в DOS-приложениях не переключается раскладка клавиатуры на русскую, хотя 
;русские буквы отображаются нормально, то в файле autoexec.nt, расположенном в
;Winnt\system32, добавьте строку
;lh %SystemRoot%\system32\kb16.com ru
;и в реестре:
;[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\KeyboardLayout\DosKeybCodes]
;"00000409"="ru"
Неизвестный
03.02.2010, 08:46
общий
спасибо за помощь я уже с этой проблемой разобрался, махинации с реестром и autoexec'ом я знал но это мне не помогло, раскладка клавиатуры немного поменялась, зато помог драйвер rk-866.com случайно в рунете нашел.
Неизвестный
03.02.2010, 16:57
общий
у меня возник вопрос следующего характера, кто нибудь знает как считать скан код клавиши без ожидания, мне нужно зациклить программу
с возможностью выхода из него нажав к примеру Esc.
Неизвестный
03.02.2010, 19:05
общий
Савченко Виталий Александрович:
Элементарно.

#include <conio.h>

int kbhit(void);

kbhit checks to see if a keystroke is currently available.

Any available keystrokes can be retrieved with getch or getche.

Return Value:
- On success (if a keystroke is available), returns a non-zero integer
- If a keystroke is not available, returns 0.
Неизвестный
03.02.2010, 19:35
общий
насколько мне известно kbhit() без разницы какая клавиша нажата она не определяет скан код
я конечно могу написать цикл типа:

while(!kbhit())
{}

но мне надо выйти из цикла именно через Esc, а не любой клавиши которая попадется.
Неизвестный
03.02.2010, 21:18
общий
Савченко Виталий Александрович:
А кто Вам мешает после kbhit() вызвать getch() для проверки нажатой клавиши?
Не нравится такой метод, используйте ассемблерную вставку: ah=1, int 16h - проверить, была ли нажата какая-то клавиша, и если да, то какая.
Схема примерно такая:
wait_esc:
asm {
mov ah,1
int 16h
jz _no_key
; какая-то клавиша нажата
; ah=1 возвращает код, но нам нужно еще и удалить его из буфера,
; поэтому вызываем ф-ю 0
mov ah,0
int 16h
cmp al,27
je _esc
_no_key:
; сюда попадаем, если не было нажатия или нажата не ESC
; что-то делаем
}
.....
goto wait_esc
Неизвестный
03.02.2010, 21:32
общий
getch() негодиться, буду ассемблерную вставку делать, я просто думал можно стандартными функциями было эту проблему решить.
Форма ответа