Вопросы по созданию приборов на С++ — Панели и приборы

Ну там все написано. Убей .pch — компилятор сам его сделает нужной версии.

Ок, спробую дома. Не гуру :blink: Было еще такое предложение:

переименуйте файл в .cpp или отключите в настройках компилятора "Use precompiled header"

Ок, спробую дома. Не гуру Изображение Было еще такое предложение:

переименуйте файл в .cpp или отключите в настройках компилятора "Use precompiled header"

Дима, раскажи что задумал. Широкой аудитории тоже будет интересно 🙂

Дима, раскажи что задумал.

OFF <Кругозор Миш расширяю> :) OFF

================================

Теперь по существу: После переименования и отключения опции «Use precompiled header» стала выдавать два предупреждения и ошибку. ИМХО, похоже ссылается на ресурс. Где ошибка?

------ Построение начато: проект: PKP, Конфигурация: Debug Win32 ------
Компиляция...
stdafx.cpp
Компиляция...
PKP.cpp
PKP.Attitude.cc
c:documents and settingsадминистраторрабочий столsample_c++pkp.attitude.cc(4) : warning C4627: #include "PKP.Attitude.cpp": пропущен при поиске использования предкомпилированного заголовка
        Добавление директивы в "stdafx.h" или перестройка предкомпилированного заголовка
c:documents and settingsадминистраторрабочий столsample_c++pkp.attitude.cc(48) : warning C4603: PITCH_LIMIT: макрос не определен или определение изменилось после использования предкомпилированного заголовка
        Добавление макроопределения в предкомпилированный заголовок вместо определения его здесь
        c:documents and settingsадминистраторрабочий столsample_c++pkp.attitude.cc(110): использование предкомпилированного заголовка
Создание кода...
Компиляция...
dllmain.cpp
Компиляция ресурсов...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation.  All rights reserved.
......sample_c++PKP.h(30) : fatal error RC1004: unexpected end of file found
Журнал построения был сохранен в "file://c:Documents and SettingsАдминистраторРабочий столProject1PKPPKPDebugBuildLog.htm"
PKP - ошибок 1, предупреждений 2
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

4-я, 48-я строка кода и дерево на скринах. Проект Win32 DLL с экспортом символов.

Прикрепленные изображения

  • Безымянный142.jpg
  • Безымянный143.jpg
  • Безымянный144.jpg

OFF <Кругозор Миш расширяю> Изображение OFF

================================

c:documents and settingsадминистраторрабочий столsample_c++pkp.attitude.cc(48) : warning C4603: PITCH_LIMIT: макрос не определен или определение изменилось после

Слушай, Дим. Я конечно не знаю, почему у тебя не клеится. Но кое что замечу.
У меня в сценостроительстве не компилилось пару раз из за того, что всё хозяйство лежало в папке с длинными русскими именами.
В результате компилятор что -то где-то не находил.
Чтобы наверняка, кидай лучше в C:ISH_PRIB например, лучше без пробелов.

Не помогло. Знатоки, что скажете? Сегодня при компиле VS2008++ выдал вот этот перл:

------ Построение начато: проект: PKP, Конфигурация: Debug Win32 ------
Компиляция ресурсов...
Microsoft (R) Windows (R) Resource Compiler Version 6.1.6723.1
Copyright (C) Microsoft Corporation.  All rights reserved.
......Documents and Settings
Проект : error PRJ0002 : Результат ошибки 1 возвращен из "C:Program FilesMicrosoft SDKsWindowsv6.0Abinrc.exe".
Журнал построения был сохранен в "file://c:MY_GAUPKP_GAUPKPDebugBuildLog.htm"
PKP - ошибок 1, предупреждений 0
========== Построение: успешно: 0, с ошибками: 1, без изменений: 0, пропущено: 0 ==========

MS Platform SDK for Windows Server 2003 SP1 на которую ссылается компиль, установлена отдельной прогой в Program Files, и шла кажись вместе с установкой VS2008++ с сервера MS. (могу ошибаться)

И общий: Где-нить описано как прально собрать DLL именно для использования ее симом?

Сообщение отредактировано Virpil: 03 June 2010 — 14:56

Ну вот BuildLog и покажи, он для этого и пишется.

Не смог я восстановить тот проект, лог другой сейчас:

<html>
<head>
<META HTTP-EQUIV=»Content-Type» content=»text/html; charset=utf-16″>
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
Журнал построения
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>
<h3>Построение начат: проект: PKP, .Конфигурация: Debug|Win32</h3>
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Командные строки
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Создание временного файла «c:MY_GAUPKPGAUPKPDebugRSP00003235802532.rsp» с содержимым
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;PKP_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Yu&quot;stdafx.h&quot; /Fp&quot;DebugPKP.pch&quot; /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .PKP.cpp
]
Создаю командную строку «cl.exe @c:MY_GAUPKPGAUPKPDebugRSP00003235802532.rsp /nologo /errorReport:prompt»
Создание временного файла «c:MY_GAUPKPGAUPKPDebugRSP00003335802532.rsp» с содержимым
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;PKP_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Yc&quot;stdafx.h&quot; /Fp&quot;DebugPKP.pch&quot; /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .stdafx.cpp
]
Создаю командную строку «cl.exe @c:MY_GAUPKPGAUPKPDebugRSP00003335802532.rsp /nologo /errorReport:prompt»
Создание временного файла «c:MY_GAUPKPGAUPKPDebugRSP00003435802532.rsp» с содержимым
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;PKP_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .dllmain.cpp
]
Создаю командную строку «cl.exe @c:MY_GAUPKPGAUPKPDebugRSP00003435802532.rsp /nologo /errorReport:prompt»
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Окно выходных данных
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Компиляция…
stdafx.cpp
Компиляция…
PKP.cpp
c:my_gaupkpgaupkppkp.cpp(5) : fatal error C1014: слишком много включаемых файлов: глубина = 1024
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Результаты
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Журнал построения был сохранен в «file://c:MY_GAUPKPGAUPKPDebugBuildLog.htm»
PKP — ошибок 1, предупреждений 0
</pre></table><table width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
</font></table></body></html>

fatal error C1014: слишком много включаемых файлов: глубина = 1024

сюда смотрел?

ещё хотел добавить. тут в файлах лежит оверхед тамагочи с исходниками от anton_il, он тоже это всё писал в студии 2К8 насколько я знаю. качни, сделай копию и выкини все его файла оттуда и вставь свои. будешь использовать как образец создания проекта в студии для написания гауг.

а вообще весь код проекта сюда. там много косяков именно в самих файлах по ходу, не только в настройках проекта. по выводу компилятора трудно колдовать.

Сообщение отредактировано icebear: 04 June 2010 — 11:33

Не помогло. Знатоки, что скажете? Сегодня при компиле VS2008++ выдал вот этот перл:
И общий: Где-нить описано как прально собрать DLL именно для использования ее симом?

Может, Вам из консоли попробовать компилировать? С помощью make-файла?

Может, Вам из консоли попробовать компилировать? С помощью make-файла?

Я бы все же посоветовал затратить столько времени, сколько нужно для того, что бы въехать в среду Visual C++ и в то, как строятся, а затем компилятся и отлаживаются C/C++ программы.
Я, например, не представляю, как можно что-то делать серьезно хотя бы без отладки.
Так же достаточно явственно помню все неудобства, связанные с неиспользованием раздельной компиляции (Обычно начинающие приборостроители это делают наряду с тем, что для компиляции и сборки пользуются make-файлами, просто потому, что в примере в SDK используется только make-файл).

Т.е. стоит сначала освоить инструмент, хоть как-то, а уж потом пробовать клепать приборы.
Ну и естественно, так же предварительно стоит приобрести, хоть какие-то инженерные знания по изготавливаемым приборам.
А то получится, как часто получается в случае с XML приборами (не во всех случаях), по причине невозможности программирования на этом языке сложной логики.
Просто анимированные картинки, пусть даже и красивые.

Сообщение отредактировано serg_p: 05 June 2010 — 12:01

а вообще весь код проекта сюда. там много косяков именно в самих файлах по ходу, не только в настройках проекта. по выводу компилятора трудно колдовать.

Некомпилированный шаблон кода проекта студии прицепил в архив ниже. Заранее спасибо за корректировку.

Может, Вам из консоли попробовать компилировать? С помощью make-файла?

Я новичек в приборостроении. Хотел воспроизвести шаблон SDK FS9, в части касаемой только ихнего авиагоризонта для Цес. Здесь писалось о том, что при комиляции из студии make-file можно «отпустить», а постигнуть на этапе хочется пока именно среду.

Прикрепленные файлы

  • Прикрепленный файл
     shablon_a.zip   1.23МБ
      68 Количество загрузок:

Дим, это просто заготовка dll.
До gau ей еще далеко.
В свое время я делал пример для Андрея акка icebear.
Не знаю на сколько он помог ему.
Посмотри, может быть поможет в чем-то разобраться.

Прикрепленные файлы

  • Прикрепленный файл
     gau_sample.zip   94.52К
      112 Количество загрузок:

Сообщение отредактировано serg_p: 05 June 2010 — 12:45

это просто заготовка dll.

Есть и сама сборка. В ней файлы только того, что предложил MS. Она получилась объемной и авсим ее не подцепил. Я удалил из проекта файл типа VC++ Intellisense Database и сжал максимально. Попробую разобраться в твоем проекте, Серег. Пасиб :)

Прикрепленные файлы

  • Прикрепленный файл
     pkpgau.zip   1.41МБ
      72 Количество загрузок:

Хехе, а вот и причина ошибки «fatal error C1014: слишком много включаемых файлов: глубина = 1024»

// PKP.cpp
// (С) All right reserved. 2100

#include "stdafx.h"
#include "PKP.cpp"

Файл инклудит сам себя.
Скорее всего там должно было быть

#include "PKP.h"

Нужно понять одно правило.
Файлы с расширением c/cpp — тело, собственно реализация, код.
Файлы с расширением h являются в первую очередь интерфейсом, механизмом, предоставляющим возможность вызывать функции, которые реализованы (запрограммированы) в c/cpp файле. Каждый c/cpp файл компилится в отдельный obj файл. Собственно раздельная компиляция. Изменения в одном c/cpp файле не приводят к перекомпиляции других c/cpp файлов. Все obj файлы собираются в процессе компоновки уже конкретно в exe, dll и т.д.

P.S.
Небольшое замечание по раздельной компиляции.
Так как сделано в примере из SDK ни в коем случае не приводит к раздельной компиляции отдельных С-файлов.
Когда один или несколько c/cpp файлов включаются в другой c/cpp файл через #include — для компилятора это выглядит, как один c/cpp файл и компилит он все это в один obj-файл. Т.е. здесь нет никакой раздельной компиляции.
Это ничего, когда файлов наберется штук 5, а когда их за 100 — это просто ужос.

Сообщение отредактировано serg_p: 06 June 2010 — 11:03

В свое время я делал пример для Андрея акка icebear.
Не знаю на сколько он помог ему.
Посмотри, может быть поможет в чем-то разобраться.

Сереж, собрал твой пример, и подправил свой. Компиль стал выдавать одинаковую ошибку для обоих проектов ссылаясь в .cpp-файлах на 4590-ю строку «головного» GAUGE.H. Только для твоего ошибка повторяется 4 раза тк там 4-е .cpp. Приведу нынешний лог своего проекта:

<html>
<head>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
Журнал построения
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>
<h3>Построение начат: проект: PKP, .Конфигурация: Debug|Win32</h3>
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Командные строки
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Создание временного файла "c:MY_GAUPKP_GAUPKPDebugRSP0000012203808.rsp" с содержимым 
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;PKP_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Yu&quot;stdafx.h&quot; /Fp&quot;DebugPKP.pch&quot; /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .PKP.Attitude.cpp
]
Создаю командную строку "cl.exe @c:MY_GAUPKP_GAUPKPDebugRSP0000012203808.rsp /nologo /errorReport:prompt"
Создание временного файла "c:MY_GAUPKP_GAUPKPDebugRSP0000022203808.rsp" с содержимым 
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;PKP_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .dllmain.cpp
]
Создаю командную строку "cl.exe @c:MY_GAUPKP_GAUPKPDebugRSP0000022203808.rsp /nologo /errorReport:prompt"
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Окно выходных данных
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Компиляция...
PKP.Attitude.cpp
c:my_gaupkp_gaupkpgauges.h(4589) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Результаты
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Журнал построения был сохранен в "file://c:MY_GAUPKP_GAUPKPDebugBuildLog.htm"
PKP - ошибок 1, предупреждений 0
</pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
</font></table></body></html>

и твоего:

<html>
<head>
<META HTTP-EQUIV="Content-Type" content="text/html; charset=utf-16">
</head>
<body>
<pre>
<table width=100% bgcolor=#CFCFE5><tr> <td> <font face=arial size=+3>
Журнал построения
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>
<h3>Построение начат: проект: SAMPLE, .Конфигурация: Debug|Win32</h3>
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Командные строки
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Создание временного файла "c:MY_GAUSAMPLE_11SAMPLEDebugRSP00000512002044.rsp" с содержимым 
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;SAMPLE_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Yu&quot;stdafx.h&quot; /Fp&quot;DebugSAMPLE.pch&quot; /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP &quot;......Documents and SettingsАдминистраторРабочий столgau_samplelogic.cpp&quot;

&quot;......Documents and SettingsАдминистраторРабочий столgau_samplegau_sample.cpp&quot;

&quot;......Documents and SettingsАдминистраторРабочий столgau_samplefuel.cpp&quot;

&quot;......Documents and SettingsАдминистраторРабочий столgau_samplecl_logic.cpp&quot;
]
Создаю командную строку "cl.exe @c:MY_GAUSAMPLE_11SAMPLEDebugRSP00000512002044.rsp /nologo /errorReport:prompt"
Создание временного файла "c:MY_GAUSAMPLE_11SAMPLEDebugRSP00000612002044.rsp" с содержимым 
[
/Od /D &quot;WIN32&quot; /D &quot;_DEBUG&quot; /D &quot;_WINDOWS&quot; /D &quot;_USRDLL&quot; /D &quot;SAMPLE_EXPORTS&quot; /D &quot;_WINDLL&quot; /D &quot;_UNICODE&quot; /D &quot;UNICODE&quot; /Gm /EHsc /RTC1 /MDd /Fo&quot;Debug\&quot; /Fd&quot;Debugvc90.pdb&quot; /W3 /c /ZI /TP .dllmain.cpp
]
Создаю командную строку "cl.exe @c:MY_GAUSAMPLE_11SAMPLEDebugRSP00000612002044.rsp /nologo /errorReport:prompt"
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Окно выходных данных
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Компиляция...
cl_logic.cpp
c:documents and settingsадминистраторрабочий столgau_samplegauges.h(4590) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
fuel.cpp
c:documents and settingsадминистраторрабочий столgau_samplegauges.h(4590) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
gau_sample.cpp
c:documents and settingsадминистраторрабочий столgau_samplegauges.h(4590) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
logic.cpp
c:documents and settingsадминистраторрабочий столgau_samplegauges.h(4590) : error C4430: отсутствует спецификатор типа - предполагается int. Примечание. C++ не поддерживает int по умолчанию
Создание кода...
</pre></table><table width=100% bgcolor=#DFDFE5><tr><td><font face=arial size=+2>
Результаты
</font></table><table width=* cellspacing=0 cellpadding=0><tr><td width=0 bgcolor=#EDEDF5>&nbsp;</td><td width=0 bgcolor=#FFFFFF>&nbsp;</td><td width=*><pre>Журнал построения был сохранен в "file://c:MY_GAUSAMPLE_11SAMPLEDebugBuildLog.htm"
SAMPLE - ошибок 4, предупреждений 0
</pre></table><table   width=100% height=20 bgcolor=#CFCFE5><tr><td><font face=arial size=+2>
</font></table></body></html>

Ругается на 4590-ую строку в gauges.h.

gauges.h — это собственно основной файл API с симом. Писался он еще при царе Горохе. Старые компиляторы (пример изначально я делал в 2003-ей студии), спокойно подменяли пропущенный тип переменной или тип возвращаемого значения функцией, на тип int. Не помню уже, с какой версии VС компилятор перестал подставлять int вместо пропущенного типа и стал считать не указание типа ошибкой. В принципе правильно. Не указывать тип переменной или возвращаемого значения функцией, есть очень нехорошее дело. Вообще, небрежное обращение с типами данных, в определенной ситуации, может сыграть в последствии очень злую шутку.
Хотя, если очень надо, то ошибку эту можно отключить.

Интересно, что у меня то все сейчас скомпилилось и студия у меня такая же, 2008-ая. Не пойму, наверное, после какого-то обновления экспресс VC, у меня компилятор стал лояльным к этой ошибке.

Замени 4590-ую строку в gauges.h

typedef (*GAUGE_KEY_EVENT_HANDLER) (ID32 event, UINT32 evdata, PVOID userdata);

на вот эту строку.

typedef int (*GAUGE_KEY_EVENT_HANDLER) (ID32 event, UINT32 evdata, PVOID userdata);

Здесь объявляется функциональный тип данных, т.е. тип — указатель на функцию с таким-то списком параметров и таким-то возвращаемым значением. В исходном варианте пропущен тип возвращаемого значения функции.

Сообщение отредактировано serg_p: 05 June 2010 — 22:01

Вобщем вернулся снова к посту #32. Error PRJ0002. Может снести к чертям эту платформу SDK ?

Сообщение отредактировано Virpil: 06 June 2010 — 16:45

Дим, здесь нужно точно понимать, что происходит.
Но опыта и знаний для этого слишком мало.
Форум не поможет тебе их приобрести.
Только книги и твоя задница.
И движение от простого к сложному.
Забудь пока про приборы.
(Если хочешь писать приборы на С)
Пройди для начала по какой-нибудь «мурзилке», которая учит писать проги на VC с полной проработкой примеров.

Поверь, на освоение C/C++ уходят годы.

И тут ты прав.

Вобщем вернулся снова к посту #32. Error PRJ0002. Может снести к чертям эту платформу SDK ?

проблема снова в файле ресурсов (.rc), который мы ещё не видели :) кинь прямо сюда его код, он небольшой.

и ещё, добавлю от себя по поводу с/сpp и h файлов: файлы h по сути можно опускать, они для удобства (что бы не бегать по километровому исходнику в поисках декларации той или иной функции) или для работы с библиотеками, где реализация просто скрыта.

и ещё, может последние посты с проблемами ide переместить вот сюда http://www.avsim.su/…priborov-na-si/ ?

Сообщение отредактировано icebear: 07 June 2010 — 11:17

Исходник .rc файла покажи

Ребят, перенес сюда
Люди, как можно на лету получить картинку с гаги? Т.е., массив пикселов типа DIB.
Мне надо взять картинку с гаги (всё, что в текущий момент там нарисовано) и продублировать в файл, например.

Я вот нашел в «case PANEL_SERVICE_POST_DRAW»:

PELEMENT_STATIC_IMAGE pelement = (PELEMENT_STATIC_IMAGE)(pgauge->elements_list[0]);

Структура интересная, имеет поля типа:

...
HBITMAP	  hbmp;
...
PIMAGE	  save_buffer;
...

, но они практически все равны NULL. :(

pelement = (PELEMENT_STATIC_IMAGE)(pgauge->elements_list[0]);
hdc = pelement->hdc;

но это ты доступишься до нижнего элемента в дереве, а вот будет-ли он полной картинкой — вопрос двадцать пятый. ещё одно замечание: hdc вроде можно достать только у тех, кто декларирован с флагом IMAGE_CREATE_DIBSECTION. возможно после декларации твои нули исчезнуть и появится буфер.

Сообщение отредактировано icebear: 28 November 2011 — 12:17