Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

Вернуться   Форум программистов > C++ > Visual C++
Регистрация

Восстановить пароль
Повторная активизация e-mail


Донат для форума - использовать для поднятия настроения себе и модераторам

А ещё здесь можно купить рекламу за 25 тыс руб в месяц! ) пишите сюда - alarforum@yandex.ru

Ответ
 
Опции темы
Старый 13.12.2015, 11:00   #1
Threetor
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 8
Репутация: 10
По умолчанию create_task в clr проекте

Привет. Я новичок в VisualStudio и Visual c++. Я пытаюсь использвовать функцию Concurrency::create_task в своём MFC проекте.

Я создал простой clr проект с пустой формой. Создал отдельный класс для работы с тасками. Этот новый класс с тасками настроил как Common Language Runtime Support в No Common Language RunTime Support чтобы мог использовать ppltasks.h.

Класс testtest.h

Код:
#pragma once
class testtest
{
public:
    testtest();
};
и testtest.cpp:

Код:
#include "testtest.h"
#include <ppltasks.h>

using namespace Concurrency;

testtest::testtest()
{
    auto task1 = create_task([]() -> int
    {
        return 42;
    });
}
Когда я запускаю приложение, оно выдаёт ошибку сразу после запуска (компиляция проходит успешно). При этом я даже не создаю класс testtest.

Код:
Program: C:\projects\c\Project1\Debug\Project1.exe
File: minkernel\crts\ucrt\src\appcrt\heap\debug_heap.cpp
Line: 1037

Expression: _CrtIsValidHeapPointer(block)
Этот же класс работает если я создаю win32 console project.

Потратил кучу времени в попытках разобраться ставя разные настройки. В итоге уже не знаю куда копать.

Есть предложения? Могу залить исходник если нужно (в исходниках только пустая форма и этот класс).
Threetor вне форума   Ответить с цитированием
Старый 13.12.2015, 11:31   #2
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,009
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Зачем вам CLR (.NET) в MFC проекте?

Либо пишите на чистом С++ с С++ библиотеками, либо берите C# если .NET хотите.
Alex11223 на форуме   Ответить с цитированием
Старый 13.12.2015, 11:51   #3
Threetor
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 8
Репутация: 10
По умолчанию

То есть проблема в корне? Я пока ещё далёк от всех этих тонкостей. Просто выбрал с++ так как раньше на нём писал. Дальше нашел туторил по созданию оконного риложения в visualstudio, там использовали такую связку. Видимо влез я совсем не туда куда надо.
Что можете посоветовать по созданию оконного приложения для старых компьютеров(скорее всего все на XP), с возможностью подключения к серверу и работой с базой данных? При этом не теряя кучу времени на создание интерфейса (как всегда проект нужно сдавать "вчера")?
Сейчас главное скорость разработки, оптимизация и скорость вообще не важны, а со стабильностью разберёмся потом.
Боюсь что C# начнёт требовать всякие фреймворки которые могут оказаться несовместимыми с системами клиентов. А в с++ боюсь что убью кучу времени только на интерфейс.

Ну а ещё лучше бы просто убрать текущий подводный камень и закончить проект как есть.
Спасибо.
Threetor вне форума   Ответить с цитированием
Старый 13.12.2015, 12:17   #4
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,009
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Цитата:
Что можете посоветовать по созданию оконного приложения
Ну если С++, то Qt.
Там и документация хорошая (англ).

Можно даже в VS подключить Qt (+у них есть add-in для некоторой интеграции типа шаблонов проектов и открытия Qt Designer для .ui файлов), но наверно проще будет взять Qt Creator.
Цитата:
для старых компьютеров(скорее всего все на XP)
В последних версиях Qt (>=5.3) вроде ХР не поддерживается если не пересобрать самому из исходников, так что скорее всего лучше взять Qt 5.2.

В новых Visual Studio кстати тоже с настройками компиляции по умолчанию не запустится на ХР.


Цитата:
Ну а ещё лучше бы просто убрать текущий подводный камень
Какой именно? Если боитесь что "начнёт требовать всякие фреймворки", то CLR (==.NET) включать нельзя.
(но вообще на XP SP3 поддерживается .NET 4.0 и вроде даже он ставится автоматически если не отключать обновления винды)

Последний раз редактировалось Alex11223; 13.12.2015 в 12:20.
Alex11223 на форуме   Ответить с цитированием
Старый 13.12.2015, 12:32   #5
Threetor
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 8
Репутация: 10
По умолчанию

Спасибо за разъяснения.

На чем разработка будет быстрее? На C# или на C++ QT?

Поставить .NET клиентам не проблема. Проблема будет если .NET будет несовместим допустим с XP sp1. Такое возможно? Если такое возможно, то остаётся только QT.
Threetor вне форума   Ответить с цитированием
Старый 13.12.2015, 12:38   #6
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,009
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

Зависит от задачи и опыта. В C# сложнее прострелить себе ногу всякими низкоуровневыми вещами доступными в С++.

В SP1 .NET 3.0 можно, 3.5-4.0 вроде нет. (в нем кстати нет Task'ов из кода выше)
Alex11223 на форуме   Ответить с цитированием
Старый 13.12.2015, 15:03   #7
Threetor
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 8
Репутация: 10
По умолчанию

Спасибо!

Попытаюсь сначала на c# сделать.
Threetor вне форума   Ответить с цитированием
Старый 13.12.2015, 15:26   #8
Threetor
Новичок
Джуниор
 
Регистрация: 13.12.2015
Сообщений: 8
Репутация: 10
По умолчанию

Таак, XP SP1 не поддерживает вообще никакой .NET (2, 3, 3.5). Все требуют SP2.

Видимо буду использовать QT 5.2, спасибо за наводку.
Threetor вне форума   Ответить с цитированием
Старый 13.12.2015, 15:39   #9
Alex11223
Модератор
Заслуженный модератор
 
Аватар для Alex11223
 
Регистрация: 12.01.2011
Сообщений: 19,009
Репутация: 3738

icq: 512-765
skype: alexp.frl
По умолчанию

2.0 вроде должно поддерживать https://msdn.microsoft.com/en-us/lib...8VS.80%29.aspx.
Оно ж и на всяких 98 работает.
Alex11223 на форуме   Ответить с цитированием
Старый 13.12.2015, 15:47   #10
come-on
Профессионал
 
Регистрация: 21.10.2015
Сообщений: 1,414
Репутация: 414
По умолчанию

а что, много клиентов с XP SP1? я думал уже само ХР вымерло или вот вот
come-on вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
OpenMP и CLR ; /openpm /MTd /clr хочу все и сразу )) kic2512 Visual C++ 0 10.02.2013 22:44
Ассемблер в CLR kamilton Visual C++ 1 03.05.2011 13:58
Браузер в CLR) Asdprom Общие вопросы C/C++ 0 10.04.2011 13:14
C++/CLR dampirik Общие вопросы .NET 3 19.11.2009 14:26
Visual c++ clr dampirik Общие вопросы .NET 1 27.08.2009 23:24


13:56.


Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.