将 class 指针作为函数参数传递

Passing a class pointer as a function argument

目前我正在尝试创建一个函数来在如下代码中实现模块化。

[代码 1]

float CBitmapWaterMark::DrawPrintInfoText(HDC hDC)
{
    StringFormat* stringFormat = new StringFormat();   
    // I'm trying to pass a stringFormat object to a member function of a class(CBitmapWaterMark). 
    stringFormat->SetAlignment(StringAlignmentNear);
    stringFormat->SetLineAlignment(StringAlignmentNear);
 

    TestFunction(stringFormat) //help point 1
}

VOID CBitmapWaterMark::TestFunction(StringFormat* stringFormat) // help point 2
{
    // implement 
}

=> 语法错误标识符 StringFormat

但是我不知道如何将它作为函数参数传递以及如何接收它。


<gdiplusstringformat.h> 中声明的 StringFormat 似乎有问题。

这是一个最小的完整可重现示例:

#include <windows.h>
#include <gdiplus.h>
#include <gdiplusstringformat.h>

StringFormat fmt;

错误日志:

1>C:\Project3 C++\main.cpp(5,17): error C4430: missing type specifier - int assumed. Note: C++ does not support default-int
1>C:\Project3 C++\main.cpp(5,14): error C2146: syntax error: missing ';' before identifier 'fmt'

您需要 using Gdiplus::StringFormat。名称“StringFormat”相当通用,因此 C++ 具有 命名空间 以防止 2 个库之间的名称冲突。 GDI+ 将其名称放在 namespace Gdiplus.