将 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
.
中
目前我正在尝试创建一个函数来在如下代码中实现模块化。
[代码 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
.