STUB заглушка для MS DOS

Ваша программа может запускаться не только в Windows. Совсем не тяжело представить ситуацию, когда пользователь может запустить программу из MS DOS. Тогда он получит сообщение, что якобы эту программу запускать надо в Windows. Это стандартная реакция, как это делается ??? В код компилированной программы добавляется еще один код для сеанса MS DOS.

 Это Win32 ?
|
-------------------
| |
нет да
заглушка основная программа

Так вот заглушка есть стандартная, но Вы можете ее и поменять используя директиву линковщику (Link) - STUB. Мало того, что Вы можете сделать красивое объяснение пользователю куда ему обратиться, чтобы работать с Вашей программой :-) и что надо сделать, например, запустить Windows. Вы можете сделать круче.

Для того, чтобы Вам сделать приложение заглушку в данной версии VC вам придется использовать недокументированную опцию линковщика /KNOWEAS. После того как создана подобная заглушка ее надо подключить в Project - Setting - Link - Project Options, например, так:

/stub:Noname.exe 

Если заглушка будет созданна не по правилам, то вы получите примерно такое сообщение:

Linking...
Noname.exe : warning LNK4060: stub file missing full MS-DOS header; rebuild stub with /KNOWEAS 16-bit LINK option

В книге "Программирование на Borland C++ для Windows", которую писал Том Сван, а как мне кажется это очень хороший автор, написано, что некоторые программисты используют данную возможность для того, чтобы сделать две версии программы в одном EXE файле для Windows и для DOS. Мне эта идея понравилась :-) Классно пользователю вообще все равно просто запустил откуда запускается и работай :-).

 
« Предыдущая статья   Следующая статья »