Обновить
155
87.5
Евгений@JordanCpp

Разработчик

Отправить сообщение

Добавил опрос, для разрядки обстановки:)

Привет ембедерам! Но у вас же нет здесь ассемблера. Только си.

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

Всякого можно придумать. К примеру динамически загружать функции из msvcrt.dll какой она там версии. Посоветовали, взять реализации STL из STL Port и MS STL. Точечно, буду копировать реализацию, очищая от макросов.

Главная причина, это желание писать движок Arcanum на С++ 23 и сохранить совместимость с Windows 95, 98, Me. Добавлю, то что нужно движку. На остальное пока нет, времени и сил.

Сэр, так точно, сэр.

Спасибо товарищь, майор за статью.

Макс поставил, на iPhone, android, windows 11, astra linux, Nintendo switch, xbox и ps5.

А вот соседи ТГ пользуются:)

Запрещаю, запрещать:)

Эта клавиатура мощнее моего ноутбука:)

До чего дошел прогресс.

Что у автора в голове, если он для статьи указал хаб C++?

В С++ тоже ключевые слова на латинице, шах и мат:))

Ландон из тхе кэпиталл оф грейт бритень:))

Сначала прочитал как РПЦ, думал ничего себе прогресс:)

Да я собираю только 32 битный код без расширений и sse. Шаблоны и новые фичи транслируются в стандартные x86 инструкции.

Я просто компилятором msvc 2026 создаю уже оптимизированные obj файлы. А линкер лишь компанует все в exe.

Точно помню информацию, что старые mac os как раз использовали pascal для разработки и довольно широко. После чего со временем перешли на objective C.

В чертогах памяти, вспоминается что использование PASCAL как пример

long FAR PASCAL WndProc ( HWND hwnd, UINT msg, UINT wParam, LONG lParam ) 

использовали, не потому, что первые версии были на pascal, а потому, что это ускоряло код. Откуда эта информация, не помню.

Ага помним.

// helloapp.cpp : Minimal MFC Windows app.
//
// This is a part of the Microsoft Foundation Classes C++ library.
// Copyright (C) 1992 Microsoft Corporation
// All rights reserved.
//
// This source code is only intended as a supplement to the
// Microsoft Foundation Classes Reference and Microsoft
// WinHelp documentation provided with the library.
// See these sources for detailed information regarding the
// Microsoft Foundation Classes product.

#include <afxwin.h>

// Define a window class derived from CFrameWnd
class CHelloWindow : public CFrameWnd
{
public:
	CHelloWindow()
		{ Create(NULL, "Hello World!", WS_OVERLAPPEDWINDOW, rectDefault); }
};

// Define an application class derived from CWinApp
class CHelloApp : public CWinApp
{
public:
	virtual BOOL InitInstance();
};

// Construct the CHelloApp's m_pMainWnd data member
BOOL CHelloApp::InitInstance()
{
	m_pMainWnd = new CHelloWindow();
	m_pMainWnd->ShowWindow(m_nCmdShow);
	m_pMainWnd->UpdateWindow();
	return TRUE;
}

CHelloApp HelloApp;  // HelloApp's constructor initializes and runs the app 

Не сказал бы, что игрушка. Можно писать не многопоточные программы, игры разной сложности, можно использовать динамическую линковку к dll,so. Это будет работать.

Вторым шагом можно сделать модули для SDL 1.2 и SDL3 для новых и старых систем. В модулях загружать через GetProcAddress.

Создать модуль с единым api который бы вызывал данные модули в зависимости от системы. Доделать STL.

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

Допустим даже если поможет, а толку то. Безопасная, но тормозная, неудобная, сливающая тоннами информацию о пользователе, за его же деньги. Проблемы с обновлением, оптимизацией, купите ПК с tpm 2.0 и бла, бла, бла.

Ещё поэкспериментирую с поддержкой исключений. Уверен, что решение есть.

Данный подход расширяет программирование под ретро системы. С++ 23 его фичи и использование современных компиляторов хорошо оптимизируют код. Это дополнительная производительность, за которую по сути я не плачу это из коробки. Очень приятно, мне в библиотеке LDL приходилось для софт рендера дублировать работу с разными форматами изображений, с помощью С++ я смогу это упростить и быть уверенным, что все заинлайниться так как буду использовать шаблоны, constexpr.

Я ожидал проблем с манглингом имен, но их нет. Протестировал на дополнительных модулях, классы, доп using'и и компилятор применяет совместимые названия, линкер от vc 6.0 корректно все линкует.

1
23 ...

Информация

В рейтинге
75-й
Откуда
Россия
Дата рождения
Зарегистрирован
Активность

Специализация

Бэкенд разработчик, Разработчик баз данных
Ведущий
SQL
Linux