FAQ:WinAPI VCPP — различия между версиями

Материал из Весельчак У
Перейти к: навигация, поиск
Строка 3: Строка 3:
 
Составлено по материалам [http://forum.shelek.ru форума программистов].  
 
Составлено по материалам [http://forum.shelek.ru форума программистов].  
  
 +
==Работа с COM и ActiveX.==
 
#[[FAQ:WinAPI VCPP:файл и версия класса ActiveX|У меня есть наименование класса ActiveX. Мне необходимо узнать в каком файле он находится, и какой версии этот файл.]]  
 
#[[FAQ:WinAPI VCPP:файл и версия класса ActiveX|У меня есть наименование класса ActiveX. Мне необходимо узнать в каком файле он находится, и какой версии этот файл.]]  
 +
#[[FAQ:WinAPI VCPP:объявить класс и переменную для ActiveX ListView|VC++.NET. На форму установил ActiveX ListView. Как объявить класс и переменную для этого элемента?]]
 +
#[[FAQ:WinAPI VCPP:перевод между BSTR и CString|Как корректно перевести тип BSTR в CString и наоборот?]]
 +
#[[FAQ:WinAPI VCPP:обратиться к COM из дополнительного потока|Не могу обратиться к COM из дополнительного потока. Мне пишут - "CoInitialize() не вызвано".]]
 +
 +
==Работа с DLL.==
 
#[[FAQ:WinAPI VCPP:разделяемые переменные в dll|Имеется DLL. В ней есть некоторые данные (скажем, массив int). Как сделать, чтобы переменные в DLL были одними и теми же для всех программ, использующих эту DLL? (Например, при загрузке DLL в массиве нет данных. Каждая программа добавит в массив новые данные.)]]  
 
#[[FAQ:WinAPI VCPP:разделяемые переменные в dll|Имеется DLL. В ней есть некоторые данные (скажем, массив int). Как сделать, чтобы переменные в DLL были одними и теми же для всех программ, использующих эту DLL? (Например, при загрузке DLL в массиве нет данных. Каждая программа добавит в массив новые данные.)]]  
#[[FAQ:WinAPI VCPP:CScrollView и определение координат курсора мыши|Если окно объекта, производного от CScrollView, имеет полосы прокрутки, то как определить координаты курсора мыши?]]  
+
#[[FAQ:WinAPI VCPP:общие для разных процессов переменные в DLL|Я написал DLL, которую используют несколько приложений. Всё работает, но когда происходит очередной вызов функции из DLL, почему то, данные в функции обнуляются. С чем это связано?]]
#[[FAQ:WinAPI VCPP:преобразование абсолютных координат экрана в относительные координаты окна|Если известны абсолютные координаты точки на экране, как перевести эти координаты в относительные координаты некоторого известного окна?]]  
+
#[[FAQ:WinAPI VCPP:экспорт функций из DLL|Я создал простой проект DLL на VC++ 6.0. Все скомпилировалось нормально. Но в другой программе не могу вызвать функцию из DLL - программа не может найти функцию по имени.]]
#[[FAQ:WinAPI VCPP:моноширинный шрифт|Когда я вывожу две строки (одна под другой), то положение символа в строках зависит от ширины символа, а хотелось бы, чтобы символы располагались один под другим.]]  
+
#[[FAQ:WinAPI VCPP:значение переменной для вызывающего процесса/потока из своей собственной DLL|Каким образом можно установить значение переменной для вызывающего процесса или потока из своей собственной DLL?]]
#[[FAQ:ANSI CPP:обращение к переменной или методу базового класса|Как обратиться к переменной или методу базового класса?]]  
+
 
#[[FAQ:WinAPI VCPP:записать данные в файл|Как записать данные в файл?]]  
+
==Работа с Visual Studio.==
 +
#[[FAQ:WinAPI VCPP:скопировать класс из одного проекта в другой|Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.]]
 +
#[[FAQ:WinAPI VCPP:no matching symbolic information found|Что означают сообщения, которые студия выводит при компиляции, вроде таких: Loaded 'C:\WINDOWS\SYSTEM\WSOCK32.DLL', no matching symbolic information found?]]
 +
#[[FAQ:WinAPI VCPP:установить размер табуляции в Visual Studio|Как настроить количество пробелов в табуляции?]]
 +
#[[FAQ:WinAPI VCPP:автоматическое форматирование текста программы|Как автоматически расставить отступы?]]
 +
#[[FAQ:WinAPI VCPP:поиск границ блока|Поиск границ блока.]]
 +
#[[FAQ:WinAPI VCPP:вертикальное выделение текста|Вертикальное выделение текста.]]
 +
#[[FAQ:WinAPI VCPP:использование С и С++ в одном проекте|Возможно ли использование файлов чистого С и С++ в одном проекте? Если да, то каковы должны быть настройки компилятора? А то ругается на Unexpected end of file while looking for precompiled header directive.]]
 +
#[[FAQ:WinAPI VCPP:разрешение ввода ENTER в многострочном поле ввода|Как позволить пользователю начать ввод новой строки в многострочном поле редактирования?]]
 +
 
 +
==Вопросы отладки и выполнения программ.==
 
#[[FAQ:WinAPI VCPP:запустить две программы под отладчиком в VC6|Имеются две программы, взаимодействующие между собой. Можно ли в MS VC6 запустить под отладчиком одновременно две программы?]]  
 
#[[FAQ:WinAPI VCPP:запустить две программы под отладчиком в VC6|Имеются две программы, взаимодействующие между собой. Можно ли в MS VC6 запустить под отладчиком одновременно две программы?]]  
 +
#[[FAQ:WinAPI VCPP:программа не исполняется на другом компьютере|Почему на моем компьютере экзешник, созданный в MFC запускается, а на других компьютерах - нет? Требует какую-то dll.]]
 +
#[[FAQ:WinAPI VCPP:самообновление запущенной программы|Каким способом exe файл может заменить самого себя?]]
 +
#[[FAQ:WinAPI VCPP:получить путь к исполняемому модулю|Как в проекте VC6 MFC программно получить путь, откуда был запущен экзешник (исполняемый модуль) самой программы?]]
 +
#[[FAQ:WinAPI VCPP:получение полного пути к текущему исполняемому файлу|Как получить полный путь к экзешнику из самой программы?]]
 +
#[[FAQ:WinAPI VCPP:просмотреть содержимое std::vector string в отладчике|Как в отладчике Visual С++ просмотреть содержимое std::vector<string>?]]
 +
#[[FAQ:WinAPI VCPP:найти директорию приложения|Как из программы определить каталог, в котором находится эта программа?]]
 +
#[[FAQ:WinAPI VCPP:получить короткое и длинное имя файла|Как получить короткое и длинное имя файла?]]
 +
#[[FAQ:WinAPI VCPP:установка переменных окружения|Как программно установить переменные окружения?]]
 +
#[[FAQ:WinAPI VCPP:получить имя пользователя и организации из настроек системы|Как получить полное имя пользователя и организации, то есть то, что на диалоге system properties (горячая кнопка Win+Break) на закладке General перечислено под пунктом Registred To?]]
 +
#[[FAQ:WinAPI VCPP:получение списка процессов|Как получить список всех процессов, включая idle?]]
 +
#[[FAQ:WinAPI VCPP:ожидание завершения процесса|Я запускаю экзешник при помощи ::ShellExecute(). Процедура тут же возвращает управление, а как дождаться, когда запущенный процесс завершится, только потом продолжить выполнение программы?]]
 +
 +
==Вопрос по MFC.==
 +
#[[FAQ:WinAPI VCPP:CScrollView и определение координат курсора мыши|Если окно объекта, производного от CScrollView, имеет полосы прокрутки, то как определить координаты курсора мыши?]]
 
#[[FAQ:WinAPI VCPP:доступ к объекту класса CFrameWnd из функций-членов класса CMyView|Каким образом можно получить доступ к объекту в классе CFrameWnd из функций-членов класса CMyView?]]  
 
#[[FAQ:WinAPI VCPP:доступ к объекту класса CFrameWnd из функций-членов класса CMyView|Каким образом можно получить доступ к объекту в классе CFrameWnd из функций-членов класса CMyView?]]  
#[[FAQ:WinAPI VCPP:сохранить иконку в ресурсах VC6|Я рисую новую иконку в ресурсах проекта VC6, но после запуска программы показывается старая иконка. Что делать?]]
 
 
#[[FAQ:WinAPI VCPP:программно выравнять CDialogBar|Как программно расположить один CDialogBar под другим при их вертикальном расположении?]]  
 
#[[FAQ:WinAPI VCPP:программно выравнять CDialogBar|Как программно расположить один CDialogBar под другим при их вертикальном расположении?]]  
 
#[[FAQ:WinAPI VCPP:добавить возврат каретки к переменной типа CString|Как добавить возврат каретки к переменной типа CString?]]  
 
#[[FAQ:WinAPI VCPP:добавить возврат каретки к переменной типа CString|Как добавить возврат каретки к переменной типа CString?]]  
 
#[[FAQ:WinAPI VCPP:акселераторы в MFC приложении|Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.]]  
 
#[[FAQ:WinAPI VCPP:акселераторы в MFC приложении|Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.]]  
#[[FAQ:WinAPI VCPP:создать exe-шник меньше 24-х килобайт|Как создать в VC++ exe-шник меньше 24-х килобайт?]]
 
#[[FAQ:WinAPI VCPP:удалить пункт меню|Как удалить из меню пункт?]]
 
#[[FAQ:WinAPI VCPP:добавить пункт меню|Как добавить пункт в меню?]]
 
#[[FAQ:WinAPI VCPP:вывод на печать с помощью DCD|Как вывести на печать то, что я нарисовал в контексте устройства (класс CDC)?]]
 
#[[FAQ:WinAPI VCPP:рисование на контексте устройства|Как нарисовать линию или прямоугольник на контексте устройства (CDC)? Как выбрать цвет и толщину линии?]]
 
#[[FAQ:WinAPI VCPP:сменить шрифт контекста устройства|Как сменить шрифт при выводе текста на CDC?]]
 
#[[FAQ:WinAPI VCPP:скопировать класс из одного проекта в другой|Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.]]
 
#[[FAQ:WinAPI VCPP:иконка в области уведомлений (системном трее)|Как создать иконку в области уведомлений (системном трее)? Как определить, какие действия производит с иконкой пользователь? Как сделать анимацию иконки в трее? Как удалить иконку?]]
 
#[[FAQ:WinAPI VCPP:прервать длительный процесс вычисления|У меня в программе имеется процедура, которая производит очень много вычислений. Как сделать так, чтобы пользователь мог прервать процесс вычислений?]]
 
#[[FAQ:WinAPI VCPP:обратиться к COM из дополнительного потока|Не могу обратиться к COM из дополнительного потока. Мне пишут - "CoInitialize() не вызвано".]]
 
 
#[[FAQ:WinAPI VCPP:диалог выбора папок|Как с помощью CFileDialog разрешить выбирать только папки?]]  
 
#[[FAQ:WinAPI VCPP:диалог выбора папок|Как с помощью CFileDialog разрешить выбирать только папки?]]  
 
#[[FAQ:WinAPI VCPP:обработка нажания клавиш в CDialog|Как в CDialog-based классе получить коды клавиш, которые нажимает пользователь? Пробовал добавлять обработчики OnChar() и OnKeyDown(), но эти обработчики вообще не вызываются.]]  
 
#[[FAQ:WinAPI VCPP:обработка нажания клавиш в CDialog|Как в CDialog-based классе получить коды клавиш, которые нажимает пользователь? Пробовал добавлять обработчики OnChar() и OnKeyDown(), но эти обработчики вообще не вызываются.]]  
#[[FAQ:WinAPI VCPP:заполнить блок памяти значением|Как заполнить блок памяти определённым значением?]]
 
#[[FAQ:WinAPI VCPP:сравнить два блока памяти|Как сравнить два блока памяти на равенство значений?]]
 
#[[FAQ:WinAPI VCPP:скопировать блок памяти|Как скопировать блок памяти?]]
 
 
#[[FAQ:WinAPI VCPP:удалить контрол из собственного обработчика|Нужно удалить контрол (CComboBox) из диалога. Причём это надо сделать из обработчика сообщения этого контрола.]]  
 
#[[FAQ:WinAPI VCPP:удалить контрол из собственного обработчика|Нужно удалить контрол (CComboBox) из диалога. Причём это надо сделать из обработчика сообщения этого контрола.]]  
#[[FAQ:WinAPI VCPP:экспорт функций из DLL|Я создал простой проект DLL на VC++ 6.0. Все скомпилировалось нормально. Но в другой программе не могу вызвать функцию из DLL - программа не может найти функцию по имени.]]
 
#[[FAQ:WinAPI VCPP:получение имени класса и метода|Есть ли какой-нибудь макрос в VC7, возвращающий строку вида ClassName::FunctionName внутри соответствующей функции?]]
 
 
#[[FAQ:WinAPI VCPP:динамическая загрузка ресурсов в ATL проекте|Как динамически подгрузить ресурсы к ATL проекту?]]  
 
#[[FAQ:WinAPI VCPP:динамическая загрузка ресурсов в ATL проекте|Как динамически подгрузить ресурсы к ATL проекту?]]  
 
#[[FAQ:WinAPI VCPP:динамическая загрузка ресурсов в MFC проекте|Как динамически подгрузить ресурсы к MFC проекту?]]  
 
#[[FAQ:WinAPI VCPP:динамическая загрузка ресурсов в MFC проекте|Как динамически подгрузить ресурсы к MFC проекту?]]  
#[[FAQ:WinAPI VCPP:получить значение пиксела на экране|Как узнать значение цвета пиксела в определенной точке экрана (не окна формы)?]]
 
#[[FAQ:WinAPI VCPP:использование С и С++ в одном проекте|Возможно ли использование файлов чистого С и С++ в одном проекте? Если да, то каковы должны быть настройки компилятора? А то ругается на Unexpected end of file while looking for precompiled header directive.]]
 
#[[FAQ:WinAPI VCPP:значение переменной для вызывающего процесса/потока из своей собственной DLL|Каким образом можно установить значение переменной для вызывающего процесса или потока из своей собственной DLL?]]
 
#[[FAQ:WinAPI VCPP:закрасить фон окна CWnd|Как закрасить фон окна CWnd?]]
 
#[[FAQ:WinAPI VCPP:определить выход курсора мыши за границу окна|Как определить, что курсор мыши вышел за границу окна?]]
 
#[[FAQ:WinAPI VCPP:инциализация RichEdit при запуске приложения|Когда размещаю компонент RichEdit на форму, программа запускается и тут же закрывается. Что здесь не так?]]
 
#[[FAQ:WinAPI VCPP:обработчик сообщения для нескольких элементов|Как сделать обработчик сообщения для нескольких элементов управления сразу?]]
 
#[[FAQ:WinAPI VCPP:локализация ресурсов приложения|Когда я запускаю программу, все надписи на русском языке теряются - показываются вопросики. Что делать?]]
 
#[[FAQ:WinAPI VCPP:получить путь к исполняемому модулю|Как в проекте VC6 MFC программно получить путь, откуда был запущен экзешник (исполняемый модуль) самой программы?]]
 
#[[FAQ:WinAPI VCPP:доступ к элементам управления панели CReBar|Как получить доступ к элементам управления панели CReBar, принадлежащей классу MainFrame?]]
 
#[[FAQ:WinAPI VCPP:стандартные курсоры|Как загрузить и показать один из стандартных курсоров?]]
 
#[[FAQ:WinAPI VCPP:запрет закрытия программы пользователем|Как запретить пользователю закрыть программу нажатием на кнопку с крестиком?]]
 
#[[FAQ:WinAPI VCPP:создать группу RadioButton|Как создать на диалоге группу элементов "RadioButton" и как задать порядок их обхода клавишей Tab?]]
 
 
#[[FAQ:WinAPI VCPP:инициализация CComboBox|Где лучше устанавливать начальные значения элемента CComboBox?]]
 
#[[FAQ:WinAPI VCPP:инициализация CComboBox|Где лучше устанавливать начальные значения элемента CComboBox?]]
#[[FAQ:WinAPI VCPP:перевод RichEdit в режим замены символов|Как перевести RichEdit в режим замены символов?]]
 
 
#[[FAQ:WinAPI VCPP:вызов метода CMainFrame из любого места программы|Как вызвать метод главного окна (если используется класс CMainFrame) из любого места программы?]]
 
#[[FAQ:WinAPI VCPP:вызов метода CMainFrame из любого места программы|Как вызвать метод главного окна (если используется класс CMainFrame) из любого места программы?]]
 
#[[FAQ:WinAPI VCPP:запрет появления полос прокруток на CFormView|Как запретить появление полос прокруток на форме класса CFormView, когда пользователь делает размер главного окна меньше размера формы?]]
 
#[[FAQ:WinAPI VCPP:запрет появления полос прокруток на CFormView|Как запретить появление полос прокруток на форме класса CFormView, когда пользователь делает размер главного окна меньше размера формы?]]
#[[FAQ:WinAPI VCPP:нарисовать прямоугольник с вертикальным цветовым градиентом|Как нарисовать прямоугольник с вертикальным цветовым градиентом?]]
 
#[[FAQ:WinAPI VCPP:отслеживание изменения файла в Windows|Как под Windows отслеживать изменение файла?]]
 
 
#[[FAQ:WinAPI VCPP:конвертировать char* в CString|Как конвертировать массив char[] в CString?]]
 
#[[FAQ:WinAPI VCPP:конвертировать char* в CString|Как конвертировать массив char[] в CString?]]
 
#[[FAQ:WinAPI VCPP:зарезервировать буфер в CString|Как зарезервировать в CString буфер нужной длины?]]
 
#[[FAQ:WinAPI VCPP:зарезервировать буфер в CString|Как зарезервировать в CString буфер нужной длины?]]
#[[FAQ:WinAPI VCPP:передача нескольких параметров в процедуру потока|Как передать больше одного параметр в процедуру потока?]]
 
 
#[[FAQ:WinAPI VCPP:убрать главное меню из окна CMainFrame|Как убрать главное меню из окна CMainFrame?]]
 
#[[FAQ:WinAPI VCPP:убрать главное меню из окна CMainFrame|Как убрать главное меню из окна CMainFrame?]]
#[[FAQ:WinAPI VCPP:определение завершение сессии Windows|Как работающая программа может определить, что пользователь завершает работу Windows?]]
 
 
#[[FAQ:WinAPI VCPP:всплывающая подсказка для CWnd|Как сделать всплывающую подсказку для класса CWnd и классов, от него производных?]]
 
#[[FAQ:WinAPI VCPP:всплывающая подсказка для CWnd|Как сделать всплывающую подсказку для класса CWnd и классов, от него производных?]]
#[[FAQ:WinAPI VCPP:просмотреть содержимое std::vector string в отладчике|Как в отладчике Visual С++ просмотреть содержимое std::vector<string>?]]
 
#[[FAQ:WinAPI VCPP:определить ширину и высоту текста при выводе на контекст устройства|Как при выводе текста на контекст устройства определить ширину и высоту выведенных символов текста в пикселах?]]
 
 
#[[FAQ:WinAPI VCPP:определить, что пользователь изменил текст в CRichEditView|Как узнать, что пользователь меняет текст в приложении на основе CRichEditView?]]
 
#[[FAQ:WinAPI VCPP:определить, что пользователь изменил текст в CRichEditView|Как узнать, что пользователь меняет текст в приложении на основе CRichEditView?]]
 
#[[FAQ:WinAPI VCPP:отличие CArray::GetSize от CArray::GetCount|Чем отличается метод CArray::GetSize от метода CArray::GetCount?]]
 
#[[FAQ:WinAPI VCPP:отличие CArray::GetSize от CArray::GetCount|Чем отличается метод CArray::GetSize от метода CArray::GetCount?]]
#[[FAQ:WinAPI VCPP:загрузка текстовой строки из ресурса|Как загрузить текстовую строку из ресурса?]]
 
 
#[[FAQ:WinAPI VCPP:поменять иконку элемента в CListCtrl|Как поменять иконку у элемента item в CListCtrl?]]
 
#[[FAQ:WinAPI VCPP:поменять иконку элемента в CListCtrl|Как поменять иконку у элемента item в CListCtrl?]]
#[[FAQ:WinAPI VCPP:взаимные зависимости классов|Имеется класс Class1, содержащий член типа "Class2*". А в Class2 имеется член типа "Class1*". Компилятор выдаёт ошибку. Что надо делать?]]
+
#[[FAQ:WinAPI VCPP:поиск и замена в CString|Как в CString можно найти или вырезать часть строки?]]
 +
#[[FAQ:WinAPI VCPP:задать высоту ComboBox|Как сделать, чтобы при выпадении списка у ComboBox была не одна строка, а больше? Вроде все свойства покрутил, не помогает: вместо выпадающего списка - одна строка и скролл.]]
 +
#[[FAQ:WinAPI VCPP:запрет закрытия диалога по ESC и ENTER|Имеется класс, производный от CDialog. Когда диалог в фокусе, нажатие на Enter или Esc приводит к закрытию диалога. Как это запретить?]]
 +
#[[FAQ:WinAPI VCPP:высота CComboBox|Почему список CComboBox не выпадает, хотя клавишами "вверх" и "вниз" значения перебираются?]]
 +
#[[FAQ:WinAPI VCPP:закрасить фон окна CWnd|Как закрасить фон окна CWnd?]]
 +
#[[FAQ:WinAPI VCPP:проверить готовность приложения|Как узнать, когда после запуска приложение уже готово к работе?]]
 +
#[[FAQ:WinAPI VCPP:отобразить картинку в ячейке MFC Grid control|Как в MFC Grid control отобразить картинку в ячейке?]]
 +
#[[FAQ:WinAPI VCPP:отобразить картинку из файла в IPicture|Как при помощи IPicture отобразить картинку из файла?]]
 +
#[[FAQ:WinAPI VCPP:доступ к элементам управления панели CReBar|Как получить доступ к элементам управления панели CReBar, принадлежащей классу MainFrame?]]
 +
#[[FAQ:WinAPI VCPP:обработка сообщений элемента MFC|Как обработать сообщения, которые приходят к элементу управления?]]
 +
#[[FAQ:WinAPI VCPP:определение количества столбцов в CListCtrl|Как узнать количество установленных в CListCtrl столбцов?]]
 +
#[[FAQ:WinAPI VCPP:OnUpdate для пунктов меню|Почему не вызывается OnUpdate для пунктов меню (не получается ни затенить, ни отметку поставить)?]]
 +
 
 +
==Общие вопросы GUI с Win32 API.==
 +
#[[FAQ:WinAPI VCPP:преобразование абсолютных координат экрана в относительные координаты окна|Если известны абсолютные координаты точки на экране, как перевести эти координаты в относительные координаты некоторого известного окна?]]
 +
#[[FAQ:WinAPI VCPP:моноширинный шрифт|Когда я вывожу две строки (одна под другой), то положение символа в строках зависит от ширины символа, а хотелось бы, чтобы символы располагались один под другим.]]
 +
#[[FAQ:WinAPI VCPP:сохранить иконку в ресурсах VC6|Я рисую новую иконку в ресурсах проекта VC6, но после запуска программы показывается старая иконка. Что делать?]]
 +
#[[FAQ:WinAPI VCPP:иконка в области уведомлений (системном трее)|Как создать иконку в области уведомлений (системном трее)? Как определить, какие действия производит с иконкой пользователь? Как сделать анимацию иконки в трее? Как удалить иконку?]]
 +
#[[FAQ:WinAPI VCPP:назначить иконку окна из ресурсов|Как сменить иконку у диалога или мейнфрейма? (поставить свою иконку из ресурсов)]]
 +
#[[FAQ:WinAPI VCPP:получение иконки приложения|Как получить иконку приложения?]]
 +
#[[FAQ:WinAPI VCPP:tooltips|Как создавать всплывающие подсказки (ToolTip)?]]
 +
#[[FAQ:WinAPI VCPP:ScrollWindow|Что делает функция ScrollWindow()?]]
 +
#[[FAQ:WinAPI VCPP:получить значение пиксела на экране|Как узнать значение цвета пиксела в определенной точке экрана (не окна формы)?]]
 +
#[[FAQ:WinAPI VCPP:стандартные курсоры|Как загрузить и показать один из стандартных курсоров?]]
 +
#[[FAQ:WinAPI VCPP:запрет закрытия программы пользователем|Как запретить пользователю закрыть программу нажатием на кнопку с крестиком?]]
 +
#[[FAQ:WinAPI VCPP:создать группу RadioButton|Как создать на диалоге группу элементов "RadioButton" и как задать порядок их обхода клавишей Tab?]]
 +
#[[FAQ:WinAPI VCPP:перевод RichEdit в режим замены символов|Как перевести RichEdit в режим замены символов?]]
 +
#[[FAQ:WinAPI VCPP:отслеживание изменения файла в Windows|Как под Windows отслеживать изменение файла?]]
 +
#[[FAQ:WinAPI VCPP:передача нескольких параметров в процедуру потока|Как передать больше одного параметр в процедуру потока?]]
 +
#[[FAQ:WinAPI VCPP:определение завершение сессии Windows|Как работающая программа может определить, что пользователь завершает работу Windows?]]
 +
#[[FAQ:WinAPI VCPP:загрузка текстовой строки из ресурса|Как загрузить текстовую строку из ресурса?]]
 
#[[FAQ:WinAPI VCPP:переключить раскладку клавиатуры в активном процессе|Как переключить раскладку клавиатуры в другом (активном) процессе?]]
 
#[[FAQ:WinAPI VCPP:переключить раскладку клавиатуры в активном процессе|Как переключить раскладку клавиатуры в другом (активном) процессе?]]
 
#[[FAQ:WinAPI VCPP:получить хендл элемента управления по идентификатору|Как получить хендл элемента управления, зная его идентификатор?]]
 
#[[FAQ:WinAPI VCPP:получить хендл элемента управления по идентификатору|Как получить хендл элемента управления, зная его идентификатор?]]
 
#[[FAQ:WinAPI VCPP:закрыть приложение из дочернего окна|Как из дочернего окна закрыть приложение?]]
 
#[[FAQ:WinAPI VCPP:закрыть приложение из дочернего окна|Как из дочернего окна закрыть приложение?]]
#[[FAQ:WinAPI VCPP:перевод между BSTR и CString|Как корректно перевести тип BSTR в CString и наоборот?]]
+
#[[FAQ:WinAPI VCPP:splash screen|Как выводят картинку-логотип (splash screen) при запуске программы?]]
 +
#[[FAQ:WinAPI VCPP:сlipboard|Как работать с буфером обмена?]]
 +
#[[FAQ:WinAPI VCPP:изменить цвет рамки приложения|Как изменить цвет рамки приложения?]]
 +
#[[FAQ:WinAPI VCPP:программно поменять настройки Internet Explorer|Как программно поменять настройки Internet Explorer?]]
 +
#[[FAQ:WinAPI VCPP:сообщения WM_MOVE и WM_MOVING|В чём разница между сообщениями WM_MOVE и WM_MOVING?]]
 +
#[[FAQ:WinAPI VCPP:определить минимальный свободный ID элементов управления|Как определить первый свободный ID, который можно использовать при динамическом создании элементов управления?]]
 +
#[[FAQ:WinAPI VCPP:определить выход курсора мыши за границу окна|Как определить, что курсор мыши вышел за границу окна?]]
 +
#[[FAQ:WinAPI VCPP:отображение результатов длительных вычислений|Как отобразить на элементах управления промежуточные результаты длительных вычислений?]]
 +
#[[FAQ:WinAPI VCPP:инциализация RichEdit при запуске приложения|Когда размещаю компонент RichEdit на форму, программа запускается и тут же закрывается. Что здесь не так?]]
 +
#[[FAQ:WinAPI VCPP:обработчик сообщения для нескольких элементов|Как сделать обработчик сообщения для нескольких элементов управления сразу?]]
 
#[[FAQ:WinAPI VCPP:доступ к графическим ресурсам элементов текущей темы оформления Windows|Как получить доступ к графическим ресурсам элементов текущей темы оформления Windows?]]
 
#[[FAQ:WinAPI VCPP:доступ к графическим ресурсам элементов текущей темы оформления Windows|Как получить доступ к графическим ресурсам элементов текущей темы оформления Windows?]]
#[[FAQ:WinAPI VCPP:запрет закрытия диалога по ESC и ENTER|Имеется класс, производный от CDialog. Когда диалог в фокусе, нажатие на Enter или Esc приводит к закрытию диалога. Как это запретить?]]
 
#[[FAQ:WinAPI VCPP:ошибки в макросах|Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.]]
 
#[[FAQ:WinAPI VCPP:получение списка процессов|Как получить список всех процессов, включая idle?]]
 
#[[FAQ:WinAPI VCPP:установка переменных окружения|Как программно установить переменные окружения?]]
 
 
#[[FAQ:WinAPI VCPP:фон окна|Как сделать, чтобы у окна был черный фон?]]
 
#[[FAQ:WinAPI VCPP:фон окна|Как сделать, чтобы у окна был черный фон?]]
#[[FAQ:WinAPI VCPP:программа не исполняется на другом компьютере|Почему на моем компьютере экзешник, созданный в MFC запускается, а на других компьютерах - нет? Требует какую-то dll.]]
+
#[[FAQ:WinAPI VCPP:удалить пункт меню|Как удалить из меню пункт?]]
 +
#[[FAQ:WinAPI VCPP:добавить пункт меню|Как добавить пункт в меню?]]  
 
#[[FAQ:WinAPI VCPP:добавление меню в диалог|Как в диалог добавить меню?]]
 
#[[FAQ:WinAPI VCPP:добавление меню в диалог|Как в диалог добавить меню?]]
#[[FAQ:WinAPI VCPP:OnUpdate для пунктов меню|Почему не вызывается OnUpdate для пунктов меню (не получается ни затенить, ни отметку поставить)?]]
 
 
#[[FAQ:WinAPI VCPP:отключить системное меню|Как в главном окне отключить системное меню (в левом верхнем углу) и кнопки (в правом верхнем углу)?]]
 
#[[FAQ:WinAPI VCPP:отключить системное меню|Как в главном окне отключить системное меню (в левом верхнем углу) и кнопки (в правом верхнем углу)?]]
 
#[[FAQ:WinAPI VCPP:запретить кнопку|Как запретить пользователю нажать на кнопку?]]
 
#[[FAQ:WinAPI VCPP:запретить кнопку|Как запретить пользователю нажать на кнопку?]]
#[[FAQ:WinAPI VCPP:no matching symbolic information found|Что означают сообщения, которые студия выводит при компиляции, вроде таких: Loaded 'C:\WINDOWS\SYSTEM\WSOCK32.DLL', no matching symbolic information found?]]
+
 
#[[FAQ:WinAPI VCPP:обработка сообщений элемента MFC|Как обработать сообщения, которые приходят к элементу управления?]]
+
==Контекст устройства (DCD), рисование и печать.==
#[[FAQ:WinAPI VCPP:установить размер табуляции в Visual Studio|Как настроить количество пробелов в табуляции?]]
+
#[[FAQ:WinAPI VCPP:вывод на печать с помощью DCD|Как вывести на печать то, что я нарисовал в контексте устройства (класс CDC)?]]  
#[[FAQ:WinAPI VCPP:автоматическое форматирование текста программы|Как автоматически расставить отступы?]]
+
#[[FAQ:WinAPI VCPP:рисование на контексте устройства|Как нарисовать линию или прямоугольник на контексте устройства (CDC)? Как выбрать цвет и толщину линии?]]  
#[[FAQ:WinAPI VCPP:поиск границ блока|Поиск границ блока.]]
+
#[[FAQ:WinAPI VCPP:сменить шрифт контекста устройства|Как сменить шрифт при выводе текста на CDC?]]  
#[[FAQ:WinAPI VCPP:вертикальное выделение текста|Вертикальное выделение текста.]]
+
#[[FAQ:WinAPI VCPP:нарисовать прямоугольник с вертикальным цветовым градиентом|Как нарисовать прямоугольник с вертикальным цветовым градиентом?]]
#[[FAQ:WinAPI VCPP:определение количества столбцов в CListCtrl|Как узнать количество установленных в CListCtrl столбцов?]]
+
#[[FAQ:WinAPI VCPP:определить ширину и высоту текста при выводе на контекст устройства|Как при выводе текста на контекст устройства определить ширину и высоту выведенных символов текста в пикселах?]]
#[[FAQ:WinAPI VCPP:получение иконки приложения|Как получить иконку приложения?]]
+
 
#[[FAQ:WinAPI VCPP:поиск и замена в CString|Как в CString можно найти или вырезать часть строки?]]
+
==Работа с памятью.==
#[[FAQ:WinAPI VCPP:отображение результатов длительных вычислений|Как отобразить на элементах управления промежуточные результаты длительных вычислений?]]
+
#[[FAQ:WinAPI VCPP:заполнить блок памяти значением|Как заполнить блок памяти определённым значением?]]  
#[[FAQ:WinAPI VCPP:общие для разных процессов переменные в DLL|Я написал DLL, которую используют несколько приложений. Всё работает, но когда происходит очередной вызов функции из DLL, почему то, данные в функции обнуляются. С чем это связано?]]
+
#[[FAQ:WinAPI VCPP:сравнить два блока памяти|Как сравнить два блока памяти на равенство значений?]]  
#[[FAQ:WinAPI VCPP:проекция файла в память|Как открыть проекцию файла в память и как с ней работать?]]
+
#[[FAQ:WinAPI VCPP:скопировать блок памяти|Как скопировать блок памяти?]]  
#[[FAQ:WinAPI VCPP:отобразить картинку в ячейке MFC Grid control|Как в MFC Grid control отобразить картинку в ячейке?]]
+
 
#[[FAQ:WinAPI VCPP:отобразить картинку из файла в IPicture|Как при помощи IPicture отобразить картинку из файла?]]
+
==Общие вопросы программирования.==
#[[FAQ:WinAPI VCPP:разрешение ввода ENTER в многострочном поле ввода|Как позволить пользователю начать ввод новой строки в многострочном поле редактирования?]]
+
#[[FAQ:ANSI CPP:обращение к переменной или методу базового класса|Как обратиться к переменной или методу базового класса?]]  
#[[FAQ:WinAPI VCPP:splash screen|Как выводят картинку-логотип (splash screen) при запуске программы?]]
+
#[[FAQ:WinAPI VCPP:записать данные в файл|Как записать данные в файл?]]  
#[[FAQ:WinAPI VCPP:задать высоту ComboBox|Как сделать, чтобы при выпадении списка у ComboBox была не одна строка, а больше? Вроде все свойства покрутил, не помогает: вместо выпадающего списка - одна строка и скролл.]]
+
#[[FAQ:WinAPI VCPP:создать exe-шник меньше 24-х килобайт|Как создать в VC++ exe-шник меньше 24-х килобайт?]]  
#[[FAQ:WinAPI VCPP:объявить класс и переменную для ActiveX ListView|VC++.NET. На форму установил ActiveX ListView. Как объявить класс и переменную для этого элемента?]]
+
#[[FAQ:WinAPI VCPP:взаимные зависимости классов|Имеется класс Class1, содержащий член типа "Class2*". А в Class2 имеется член типа "Class1*". Компилятор выдаёт ошибку. Что надо делать?]]
#[[FAQ:WinAPI VCPP:сlipboard|Как работать с буфером обмена?]]
+
#[[FAQ:WinAPI VCPP:ошибки в макросах|Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.]]
#[[FAQ:WinAPI VCPP:получение полного пути к текущему исполняемому файлу|Как получить полный путь к экзешнику из самой программы?]]
+
#[[FAQ:WinAPI VCPP:прервать длительный процесс вычисления|У меня в программе имеется процедура, которая производит очень много вычислений. Как сделать так, чтобы пользователь мог прервать процесс вычислений?]]  
#[[FAQ:WinAPI VCPP:самообновление запущенной программы|Каким способом exe файл может заменить самого себя?]]
+
 
#[[FAQ:WinAPI VCPP:перекодировка между windows-1251 и UTF-8|Как производится конвертация из кодировки UTF8 в 1251 и наоборот?]]
 
#[[FAQ:WinAPI VCPP:перекодировка между windows-1251 и UTF-8|Как производится конвертация из кодировки UTF8 в 1251 и наоборот?]]
 
#[[FAQ:WinAPI VCPP:доступ к базам Access из VC.NET|Как работать с базой данных Access из программы на VC.NET?]]
 
#[[FAQ:WinAPI VCPP:доступ к базам Access из VC.NET|Как работать с базой данных Access из программы на VC.NET?]]
#[[FAQ:WinAPI VCPP:tooltips|Как создавать всплывающие подсказки (ToolTip)?]]
+
#[[FAQ:WinAPI VCPP:получение имени класса и метода|Есть ли какой-нибудь макрос в VC7, возвращающий строку вида ClassName::FunctionName внутри соответствующей функции?]]  
#[[FAQ:WinAPI VCPP:ScrollWindow|Что делает функция ScrollWindow()?]]
+
#[[FAQ:WinAPI VCPP:локализация ресурсов приложения|Когда я запускаю программу, все надписи на русском языке теряются - показываются вопросики. Что делать?]]
#[[FAQ:WinAPI VCPP:высота CComboBox|Почему список CComboBox не выпадает, хотя клавишами "вверх" и "вниз" значения перебираются?]]
+
#[[FAQ:WinAPI VCPP:проекция файла в память|Как открыть проекцию файла в память и как с ней работать?]]
#[[FAQ:WinAPI VCPP:программно поменять настройки Internet Explorer|Как программно поменять настройки Internet Explorer?]]
+
#[[FAQ:WinAPI VCPP:проверить готовность приложения|Как узнать, когда после запуска приложение уже готово к работе?]]
+
#[[FAQ:WinAPI VCPP:получить короткое и длинное имя файла|Как получить короткое и длинное имя файла?]]
+
#[[FAQ:WinAPI VCPP:сообщения WM_MOVE и WM_MOVING|В чём разница между сообщениями WM_MOVE и WM_MOVING?]]
+
#[[FAQ:WinAPI VCPP:найти директорию приложения|Как из программы определить каталог, в котором находится эта программа?]]
+
#[[FAQ:WinAPI VCPP:получить имя пользователя и организации из настроек системы|Как получить полное имя пользователя и организации, то есть то, что на диалоге system properties (горячая кнопка Win+Break) на закладке General перечислено под пунктом Registred To?]]
+
#[[FAQ:WinAPI VCPP:определить минимальный свободный ID элементов управления|Как определить первый свободный ID, который можно использовать при динамическом создании элементов управления?]]
+
#[[FAQ:WinAPI VCPP:изменить цвет рамки приложения|Как изменить цвет рамки приложения?]]
+
#[[FAQ:WinAPI VCPP:ожидание завершения процесса|Я запускаю экзешник при помощи ::ShellExecute(). Процедура тут же возвращает управление, а как дождаться, когда запущенный процесс завершится, только потом продолжить выполнение программы?]]
+
#[[FAQ:WinAPI VCPP:назначить иконку окна из ресурсов|Как сменить иконку у диалога или мейнфрейма? (поставить свою иконку из ресурсов)]]
+
  
 
[[Category:FAQ]] [[Category:FAQ:WinAPI_VCPP]]
 
[[Category:FAQ]] [[Category:FAQ:WinAPI_VCPP]]

Версия 22:06, 3 октября 2009

Ответы на часто задаваемые вопросы по Windows API и VC++.

Составлено по материалам форума программистов.

Работа с COM и ActiveX.

  1. У меня есть наименование класса ActiveX. Мне необходимо узнать в каком файле он находится, и какой версии этот файл.
  2. VC++.NET. На форму установил ActiveX ListView. Как объявить класс и переменную для этого элемента?
  3. Как корректно перевести тип BSTR в CString и наоборот?
  4. Не могу обратиться к COM из дополнительного потока. Мне пишут - "CoInitialize() не вызвано".

Работа с DLL.

  1. Имеется DLL. В ней есть некоторые данные (скажем, массив int). Как сделать, чтобы переменные в DLL были одними и теми же для всех программ, использующих эту DLL? (Например, при загрузке DLL в массиве нет данных. Каждая программа добавит в массив новые данные.)
  2. Я написал DLL, которую используют несколько приложений. Всё работает, но когда происходит очередной вызов функции из DLL, почему то, данные в функции обнуляются. С чем это связано?
  3. Я создал простой проект DLL на VC++ 6.0. Все скомпилировалось нормально. Но в другой программе не могу вызвать функцию из DLL - программа не может найти функцию по имени.
  4. Каким образом можно установить значение переменной для вызывающего процесса или потока из своей собственной DLL?

Работа с Visual Studio.

  1. Как мне скопировать класс из одного проекта в другой? Код класса находится в файлах проекта в виде исходников.
  2. Что означают сообщения, которые студия выводит при компиляции, вроде таких: Loaded 'C:\WINDOWS\SYSTEM\WSOCK32.DLL', no matching symbolic information found?
  3. Как настроить количество пробелов в табуляции?
  4. Как автоматически расставить отступы?
  5. Поиск границ блока.
  6. Вертикальное выделение текста.
  7. Возможно ли использование файлов чистого С и С++ в одном проекте? Если да, то каковы должны быть настройки компилятора? А то ругается на Unexpected end of file while looking for precompiled header directive.
  8. Как позволить пользователю начать ввод новой строки в многострочном поле редактирования?

Вопросы отладки и выполнения программ.

  1. Имеются две программы, взаимодействующие между собой. Можно ли в MS VC6 запустить под отладчиком одновременно две программы?
  2. Почему на моем компьютере экзешник, созданный в MFC запускается, а на других компьютерах - нет? Требует какую-то dll.
  3. Каким способом exe файл может заменить самого себя?
  4. Как в проекте VC6 MFC программно получить путь, откуда был запущен экзешник (исполняемый модуль) самой программы?
  5. Как получить полный путь к экзешнику из самой программы?
  6. Как в отладчике Visual С++ просмотреть содержимое std::vector<string>?
  7. Как из программы определить каталог, в котором находится эта программа?
  8. Как получить короткое и длинное имя файла?
  9. Как программно установить переменные окружения?
  10. Как получить полное имя пользователя и организации, то есть то, что на диалоге system properties (горячая кнопка Win+Break) на закладке General перечислено под пунктом Registred To?
  11. Как получить список всех процессов, включая idle?
  12. Я запускаю экзешник при помощи ::ShellExecute(). Процедура тут же возвращает управление, а как дождаться, когда запущенный процесс завершится, только потом продолжить выполнение программы?

Вопрос по MFC.

  1. Если окно объекта, производного от CScrollView, имеет полосы прокрутки, то как определить координаты курсора мыши?
  2. Каким образом можно получить доступ к объекту в классе CFrameWnd из функций-членов класса CMyView?
  3. Как программно расположить один CDialogBar под другим при их вертикальном расположении?
  4. Как добавить возврат каретки к переменной типа CString?
  5. Как в диалоговом MFC приложении добавить accelerator'ы? В редакторе ресурсов создаю, а применить не могу.
  6. Как с помощью CFileDialog разрешить выбирать только папки?
  7. Как в CDialog-based классе получить коды клавиш, которые нажимает пользователь? Пробовал добавлять обработчики OnChar() и OnKeyDown(), но эти обработчики вообще не вызываются.
  8. Нужно удалить контрол (CComboBox) из диалога. Причём это надо сделать из обработчика сообщения этого контрола.
  9. Как динамически подгрузить ресурсы к ATL проекту?
  10. Как динамически подгрузить ресурсы к MFC проекту?
  11. Где лучше устанавливать начальные значения элемента CComboBox?
  12. Как вызвать метод главного окна (если используется класс CMainFrame) из любого места программы?
  13. Как запретить появление полос прокруток на форме класса CFormView, когда пользователь делает размер главного окна меньше размера формы?
  14. Как конвертировать массив char[] в CString?
  15. Как зарезервировать в CString буфер нужной длины?
  16. Как убрать главное меню из окна CMainFrame?
  17. Как сделать всплывающую подсказку для класса CWnd и классов, от него производных?
  18. Как узнать, что пользователь меняет текст в приложении на основе CRichEditView?
  19. Чем отличается метод CArray::GetSize от метода CArray::GetCount?
  20. Как поменять иконку у элемента item в CListCtrl?
  21. Как в CString можно найти или вырезать часть строки?
  22. Как сделать, чтобы при выпадении списка у ComboBox была не одна строка, а больше? Вроде все свойства покрутил, не помогает: вместо выпадающего списка - одна строка и скролл.
  23. Имеется класс, производный от CDialog. Когда диалог в фокусе, нажатие на Enter или Esc приводит к закрытию диалога. Как это запретить?
  24. Почему список CComboBox не выпадает, хотя клавишами "вверх" и "вниз" значения перебираются?
  25. Как закрасить фон окна CWnd?
  26. Как узнать, когда после запуска приложение уже готово к работе?
  27. Как в MFC Grid control отобразить картинку в ячейке?
  28. Как при помощи IPicture отобразить картинку из файла?
  29. Как получить доступ к элементам управления панели CReBar, принадлежащей классу MainFrame?
  30. Как обработать сообщения, которые приходят к элементу управления?
  31. Как узнать количество установленных в CListCtrl столбцов?
  32. Почему не вызывается OnUpdate для пунктов меню (не получается ни затенить, ни отметку поставить)?

Общие вопросы GUI с Win32 API.

  1. Если известны абсолютные координаты точки на экране, как перевести эти координаты в относительные координаты некоторого известного окна?
  2. Когда я вывожу две строки (одна под другой), то положение символа в строках зависит от ширины символа, а хотелось бы, чтобы символы располагались один под другим.
  3. Я рисую новую иконку в ресурсах проекта VC6, но после запуска программы показывается старая иконка. Что делать?
  4. Как создать иконку в области уведомлений (системном трее)? Как определить, какие действия производит с иконкой пользователь? Как сделать анимацию иконки в трее? Как удалить иконку?
  5. Как сменить иконку у диалога или мейнфрейма? (поставить свою иконку из ресурсов)
  6. Как получить иконку приложения?
  7. Как создавать всплывающие подсказки (ToolTip)?
  8. Что делает функция ScrollWindow()?
  9. Как узнать значение цвета пиксела в определенной точке экрана (не окна формы)?
  10. Как загрузить и показать один из стандартных курсоров?
  11. Как запретить пользователю закрыть программу нажатием на кнопку с крестиком?
  12. Как создать на диалоге группу элементов "RadioButton" и как задать порядок их обхода клавишей Tab?
  13. Как перевести RichEdit в режим замены символов?
  14. Как под Windows отслеживать изменение файла?
  15. Как передать больше одного параметр в процедуру потока?
  16. Как работающая программа может определить, что пользователь завершает работу Windows?
  17. Как загрузить текстовую строку из ресурса?
  18. Как переключить раскладку клавиатуры в другом (активном) процессе?
  19. Как получить хендл элемента управления, зная его идентификатор?
  20. Как из дочернего окна закрыть приложение?
  21. Как выводят картинку-логотип (splash screen) при запуске программы?
  22. Как работать с буфером обмена?
  23. Как изменить цвет рамки приложения?
  24. Как программно поменять настройки Internet Explorer?
  25. В чём разница между сообщениями WM_MOVE и WM_MOVING?
  26. Как определить первый свободный ID, который можно использовать при динамическом создании элементов управления?
  27. Как определить, что курсор мыши вышел за границу окна?
  28. Как отобразить на элементах управления промежуточные результаты длительных вычислений?
  29. Когда размещаю компонент RichEdit на форму, программа запускается и тут же закрывается. Что здесь не так?
  30. Как сделать обработчик сообщения для нескольких элементов управления сразу?
  31. Как получить доступ к графическим ресурсам элементов текущей темы оформления Windows?
  32. Как сделать, чтобы у окна был черный фон?
  33. Как удалить из меню пункт?
  34. Как добавить пункт в меню?
  35. Как в диалог добавить меню?
  36. Как в главном окне отключить системное меню (в левом верхнем углу) и кнопки (в правом верхнем углу)?
  37. Как запретить пользователю нажать на кнопку?

Контекст устройства (DCD), рисование и печать.

  1. Как вывести на печать то, что я нарисовал в контексте устройства (класс CDC)?
  2. Как нарисовать линию или прямоугольник на контексте устройства (CDC)? Как выбрать цвет и толщину линии?
  3. Как сменить шрифт при выводе текста на CDC?
  4. Как нарисовать прямоугольник с вертикальным цветовым градиентом?
  5. Как при выводе текста на контекст устройства определить ширину и высоту выведенных символов текста в пикселах?

Работа с памятью.

  1. Как заполнить блок памяти определённым значением?
  2. Как сравнить два блока памяти на равенство значений?
  3. Как скопировать блок памяти?

Общие вопросы программирования.

  1. Как обратиться к переменной или методу базового класса?
  2. Как записать данные в файл?
  3. Как создать в VC++ exe-шник меньше 24-х килобайт?
  4. Имеется класс Class1, содержащий член типа "Class2*". А в Class2 имеется член типа "Class1*". Компилятор выдаёт ошибку. Что надо делать?
  5. Я написал в VC++ простейший макрос, где невозможно ошибиться, а компилятор всё же выдаёт ошибку.
  6. У меня в программе имеется процедура, которая производит очень много вычислений. Как сделать так, чтобы пользователь мог прервать процесс вычислений?
  7. Как производится конвертация из кодировки UTF8 в 1251 и наоборот?
  8. Как работать с базой данных Access из программы на VC.NET?
  9. Есть ли какой-нибудь макрос в VC7, возвращающий строку вида ClassName::FunctionName внутри соответствующей функции?
  10. Когда я запускаю программу, все надписи на русском языке теряются - показываются вопросики. Что делать?
  11. Как открыть проекцию файла в память и как с ней работать?