Список заметок

Использование typedef в C#

C# не имеет оператора typedef, но вы можете использовать 2 метода. Первый метод работает локально только в одном файле:

using ByteList = System.Collections.Generic.List;

Второй метод работает на весь проект. Необходимо создать отдельный класс и использовать наследование:

public class ByteList : List {}

Теги: C#

VMware и OpenGL

VMware 10 имеет настройку 3D acceleration. При её включении виртуальная машина начинает поддерживать OpenGL, но по опыту отладки эта поддержка частичная и часто приводит к артефактам или крешам.

Теги: Ошибки OpenGL

Кратко о minidump

Если ваша программа упала на компьютере и отладить возможности нет, а где именно она упала выяснить очень сложно, то вам поможет minidump. Файл, который может сохранять Windows при падении программы или ваша программа сама может это делать с помощью WinDbg. Вы можете отрыть minibump в Visual Studio и при наличии pdb файлов и исходников, вы быстро найдёте место падение программы.

Теги: Windows Отладка

Не могу скомпилировать код с __try...__except?

Не могу скомпилировать код с __try...__except?

При компиляции кода в Visual Studio с __try...__except возникает ошибка: "error C2712: cannot use __try in functions that require object unwinding". Решить данную проблему можно разными путями:

  • Вынести код в отдельную функцию без параметров.
  • Сделать так, чтобы внутри блока не использовались переменные или параметры без деструкторов.
  • Использовать параметр компиляции /GX-.

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

Теги: C++ Ошибки

delete и предекларация класса(warning C4150)

Используя предекларацию класса необходимо быть острожным. Если вызывать delete для предекларированного класса, то получите warning C4150. Это опасно тем, что деструктор для него не вызовется, т.к. объявление класса неизвестно.

Небольшой пример:

H-файл класса A.

class B;
class A
{
public:
A();
~A()
{
	delete pB; // warning C4150
}
private:
B* pB;
};

Теги: C++