Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Консоль & winsock

3.7K
28 сентября 2004 года
GoGosha
6 / / 15.08.2003
Как использовать WinSock(TClientSocket TServerSocket) или другие классы VCL в консольном приложении или консоль в Application?
4
28 сентября 2004 года
mike
3.7K / / 01.10.2002
Не думаю что это возможно.

Вот пример консольного приложения, которое скачивает страницу сайта:
http://mike.nov.ru/soft/socket/
4.1K
29 сентября 2004 года
Olegg
48 / / 17.09.2004
Цитата:
Originally posted by mike
Не думаю что это возможно.

Вот пример консольного приложения, которое скачивает страницу сайта:
http://mike.nov.ru/soft/socket/



WSASocket изучайте.

246
29 сентября 2004 года
GIZMO
1.8K / / 30.07.2004
Цитата:
Originally posted by mike
Не думаю что это возможно.


File|New->ConsoleWizard->(установить галки - Use VCL, Console Application)->Ok;
File|New->Form->Ok.

Код:
//------------------------------------------------
#define VCL_IOSTREAM

#include <vcl.h>
#include <condefs.h>
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <iostream.h>
#pragma hdrstop
#include "FormFromConsole.h"

USEFORM("FormFromConsole.cpp", Form1);
//------------------------------------------------
//SetConsoleOutputCP(1251); - не работает, А?
String coutRus(String Text)
{
  String Result;
  int TextLen = Text.Length();

  char* Buffer = new char[TextLen];
  CharToOem(Text.c_str(), Buffer);
  Result = Buffer;
  delete Buffer;

  return Result;
}
//------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
  char title[256] = "";
  char className[20] = "";

  GetModuleFileName(0, title, sizeof(title));

  TOSVersionInfo info;
  info.dwOSVersionInfoSize = sizeof(info);
  GetVersionEx(&info);
  int platform = info.dwPlatformId;

  if (platform == VER_PLATFORM_WIN32_NT)//NT
    strcpy(className, "ConsoleWindowClass");
  else {//Windows 95
    strcpy(className, "tty");
    String name = title;
    int pos = name.LastDelimiter("\\" );
    name = name.SubString(++pos, name.Length());
    name = name.SubString(1, name.Length() - 4);
    strcpy(title, name.c_str());
  }

  HWND hWnd = FindWindow(className, title);

  bool done = false;
  do {
    clrscr();
    cout << coutRus("Введите команду...");
    cout << endl;

    int choice;
    choice = getch();
    choice -= 48;
    while(choice < -1 || choice > 1) {
      clrscr();
      cout << endl;
      cout << coutRus("Список команд...");
      cout << endl;
      cout << coutRus("0. Завершение работы");
      cout  << endl;
      cout << coutRus("1. Вызов формы");
      cout << endl;
      choice = getch();
      choice -= 48;
    }
    switch (choice) {
      case 0 :
        done = true;
        break;
      case 1 :
        EnableWindow(hWnd, false);
        TForm1* Form1 = new TForm1(0);
        Form1->ShowModal();
        EnableWindow(hWnd, true);
        BringWindowToTop(hWnd);
        cout << endl << coutRus("Результат: ") << coutRus(Form1->Edit1->Text) << endl;
        cout  <<  coutRus("Нажмите любую клавишу для продолжения работы...") << endl;
        getch();
        delete Form1;
        break;
    }
  } while(!done);
  return 0;
}
//------------------------------------------------


Цитата:
Originally posted by GoGosha
или консоль в Application?


это не понял...

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог