Программирование >>  Перегруженные имена функций и идентификаторы 

1 ... 163 164 165 [ 166 ] 167 168 169 ... 210


Что такое wd ?

Это отладчик, бывший WVIDEO, но с более удобным интерфейсом.

Поставляется начиная с версии 10.

Нужно состряпать маленький NLMчик. Что делать?

Вам нужен WATCOM 10.0. В него входит NLM SDK и вроде хелп к нему. Если WC <= 9.5, то нужен сам NLM SDK и документация.

Линковать :

(файл wclink.lnk например) system netware

Debug all

opt scr Hello, world

OPT VERSION=1.0

OPT COPYR Copyright (C) by me, 1994

#include <conio.h>

void main( void )

cprintf( Hello, world!\n\r );

ConsolePrintf( Hello, World - just started!\n\r );

RingTheBell();

Собираю программу под OS/2 16-бит, линкер не находит библиотеку DOSCALLS.LIB. Кто виноват и что делать?

Никто не виноват. В поставке Ваткома есть библиотека

os2286.lib.

Это она и есть. Ее надо либо переименовать в doscalls.lib,

либо явно прилинковывать.

Что такое удаленная отладка через pipe? Как ею пользоваться под OS/2?

В одной сессии запускается vdmserv.exe, потом запускается отладчик wd /tr=vdm и соединяется с vdmserv по пайпу, ну и рулит им. Как удаленная отладка через компорт работает знаете? Вот тут так же, только через пайп.

Собираю 32-битный экзешник под PM с отладочной информацией (/d2), но после того как осевым rc пришпиливаю к нему ресурсы, отладочной информации - как не бывало. Это лечится как-нибудь?

Откусываете дебугинфу wstripом в .sym файл и потом

присобачиваете ресурсы. Если имя экзешника и имя .sym

совпадают, дебаггер сам его подхватит.



Отладочную информацию надо сбрасывать в SYM-файл:

wcl386 /d2 / op symf /l=os2v2 pm

WATCOM на 4 мб компилиpует быстpей чем на 8 мб, а на 8 мб быстpее чем на 16 мб, почему?

Чем больше памяти, тем лучше работает оптимизатор.

Можно дать ему фиксированный размер памяти - SET

WCGMEMORY=4096, и тогда он не будет пользоваться лишней

памятью.

Учтите, что для компиляции программ для Windows на C++ данного значения может не хватить.

Есть такая штука - pipe в gcc и bcc. А вот в Watcome как перехватить выхлоп программы?

В смысле забрать себе stdout и stderr? Да как обтчно -

сдупить их куда-нибудь. Функцию dup() еще никто не отменял.

А есть ли способ перехватить ошибку по нехватке памяти? То есть какой-нибудь callback, вызываемый диспетчером памяти при невозможности удовлетворить запрос?

В C++ есть стандартный: set new handler().

Чем отличаются статические DLL от динамических?

Разница в том, что вы можете функи из DLL на этапе линковки в EXEшник собрать (static). А можете по ходу работы проги DLL грузить и функи выполнять (dynamic).

Решил тут DLL под OS/2 создать - ничего не вышло. Что делать?

Вы динамически собираетесь линковать или статически? Если статически, тогда вам просто declare func сделать и включить dll в test.lnk.

Если динамически, то вы должны прогрузить dll, получить адрес функи и только после этого юзать. Можно делать это через API OS/2: DosLoadModule DosQueryProcAddr DosFreeModule.

Например:

exe.c:

#define INCL DOSMODULEMGR #include <os2.h> #define DLLNAME DLL

PFN Dllfunc;

char FuncName[]= RegardFromDll ;

char LoadError[100];

void main()



HMODULE MHandle;

DosLoadModule( LoadError, sizeof( LoadError ), DLLNAME, &MHandle ); DosQueryProcAddr( MHandle, 0, FuncName, &Dllfunc

); (*Dllfunc)();

DosFreeModule( MHandle );

dll.c

#include <stdio.h>

void RegardFromDll( void )

printf( This printed by function, loaded vs DLL\n ); Когда компиляете свою DLL, то добавьте свич -bd, который создаст в .obj такое дело, как DLLstart. После этого все заработает:

wpp386 -bd -4s -ox dll.cpp Как подавить варнинги о неиспользованных аргументах?

Если используете плюсовый компилер - просто опускайте имена параметров, например:

void foo( int bar, char* )

#pragma off(unreferenced) Можно использовать макрос:

#ifndef NU

#ifdef cplusplus #ifdef BORLANDC #define NU( ARG ) ARG #else

#define NU( ARG ) (void)ARG

#endif

#else

#define NU( ARG ) ARG=ARG

#endif

#endif

Для многих, особенно юниксового происхождения, компайлеров работает /*ARGSUSED*/ перед определением функции.

Подскажите, как в watcome увеличить число открытых файлов? Смотрите TFM. grow handles(int newcount).

Как заставить 16-ти битные OS/2 задачи видеть длинные имена файлов? Опция newfiles для линкера.



1 ... 163 164 165 [ 166 ] 167 168 169 ... 210

© 2006 - 2024 pmbk.ru. Генерация страницы: 0
При копировании материалов приветствуются ссылки.
Яндекс.Метрика