在自己的构造函数中构造 Gdiplus::Font
Construction of Gdiplus::Font in own Constructor
我正在尝试在我自己的 Class 构造函数中构造一个 Gdiplus::Font。
我的 Class 看起来像这样:
drawGui.h:
class drawGui {
private:
Gdiplus::Font* font; // Better would be std::unique_ptr<Gdiplus::Font>
public:
drawGui();
~drawGui();
void draw(Gdiplus::Bitmap* image);
};
我在drawGui.cpp中尝试了以下构造方法:
drawGui::drawGui() {
Gdiplus::Font fontBuffer(L"Arial", 12);
font = fontBuffer.Clone(); // Exception
}
drawGui::drawGui() { // Compiles but font == NULL
font = new Gdiplus::Font(L"Arial", 12);
}
drawGui::~drawGui() {
delete font;
}
void drawGui::draw(Gdiplus::Bitmap* image) { /* Draw the Font onto an Image */ }
我的 draw() 函数每秒被调用一次,所以我想将字体对象存储在我的 class 中,并在每次调用 draw() 时重复使用它。
我使用的是最新版本的VS2015
问题是 GdiplusStartup() 被另一个 class 调用了。 Gdi+ 在我的 class 方法中很活跃,但在 class 构造函数中没有。
我正在尝试在我自己的 Class 构造函数中构造一个 Gdiplus::Font。
我的 Class 看起来像这样:
drawGui.h:
class drawGui {
private:
Gdiplus::Font* font; // Better would be std::unique_ptr<Gdiplus::Font>
public:
drawGui();
~drawGui();
void draw(Gdiplus::Bitmap* image);
};
我在drawGui.cpp中尝试了以下构造方法:
drawGui::drawGui() {
Gdiplus::Font fontBuffer(L"Arial", 12);
font = fontBuffer.Clone(); // Exception
}
drawGui::drawGui() { // Compiles but font == NULL
font = new Gdiplus::Font(L"Arial", 12);
}
drawGui::~drawGui() {
delete font;
}
void drawGui::draw(Gdiplus::Bitmap* image) { /* Draw the Font onto an Image */ }
我的 draw() 函数每秒被调用一次,所以我想将字体对象存储在我的 class 中,并在每次调用 draw() 时重复使用它。
我使用的是最新版本的VS2015
问题是 GdiplusStartup() 被另一个 class 调用了。 Gdi+ 在我的 class 方法中很活跃,但在 class 构造函数中没有。