#define STRICT
#define WIN32_LEAN_AND_MEAN#include <windows.h>
#include <tchar.h>
#include <assert.h>void CenterText(HDC hDC,
int x,
int y,
LPCTSTR szFace,
LPCTSTR szMessage,
int point)
{
HFONT hFont = ::CreateFont(- point * ::GetDeviceCaps(hDC, LOGPIXELSY) / 72,
0,
0,
0,
FW_BOLD,
TRUE,
FALSE,
FALSE,
ANSI_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
VARIABLE_PITCH,
szFace); assert(hFont); HGDIOBJ hOldGDIObj = ::SelectObject(hDC, hFont); ::SetTextAlign(hDC, TA_CENTER | TA_BASELINE); ::SetBkMode(hDC, TRANSPARENT);
::SetTextColor(hDC, RGB(0, 0, 0xff));
::TextOut(hDC, x, y, szMessage, _tcslen(szMessage)); ::SelectObject(hDC, hOldGDIObj);
::DeleteObject(hFont);
}#pragma comment(linker, "-merge:.rdata=.text")
#pragma comment(linker, "-align:512")const TCHAR szMessage[] = _T("Hello, World");
const TCHAR szFace[] = _T("Times New Roman");extern "C" void WinMainCRTStartup()
{
HDC hDC = GetDC(NULL);
assert(hDC); CenterText(hDC,
::GetSystemMetrics(SM_CXSCREEN) / 2,
::GetSystemMetrics(SM_CYSCREEN) / 2,
szFace,
szMessage,
72); ::ReleaseDC(NULL, hDC); ::ExitProcess(0);
}
#define WIN32_LEAN_AND_MEAN#include <windows.h>
#include <tchar.h>
#include <assert.h>void CenterText(HDC hDC,
int x,
int y,
LPCTSTR szFace,
LPCTSTR szMessage,
int point)
{
HFONT hFont = ::CreateFont(- point * ::GetDeviceCaps(hDC, LOGPIXELSY) / 72,
0,
0,
0,
FW_BOLD,
TRUE,
FALSE,
FALSE,
ANSI_CHARSET,
OUT_TT_PRECIS,
CLIP_DEFAULT_PRECIS,
PROOF_QUALITY,
VARIABLE_PITCH,
szFace); assert(hFont); HGDIOBJ hOldGDIObj = ::SelectObject(hDC, hFont); ::SetTextAlign(hDC, TA_CENTER | TA_BASELINE); ::SetBkMode(hDC, TRANSPARENT);
::SetTextColor(hDC, RGB(0, 0, 0xff));
::TextOut(hDC, x, y, szMessage, _tcslen(szMessage)); ::SelectObject(hDC, hOldGDIObj);
::DeleteObject(hFont);
}#pragma comment(linker, "-merge:.rdata=.text")
#pragma comment(linker, "-align:512")const TCHAR szMessage[] = _T("Hello, World");
const TCHAR szFace[] = _T("Times New Roman");extern "C" void WinMainCRTStartup()
{
HDC hDC = GetDC(NULL);
assert(hDC); CenterText(hDC,
::GetSystemMetrics(SM_CXSCREEN) / 2,
::GetSystemMetrics(SM_CYSCREEN) / 2,
szFace,
szMessage,
72); ::ReleaseDC(NULL, hDC); ::ExitProcess(0);
}
解决方案 »
- 做这种变形效果
- 有人用过Matrox 的图像处理库(MIL)吗?请教个问题啊!
- 100分求助:WINDOWS.H already included. MFC apps must not #include <windows.h>
- char* 取右边一个字符和取字符串中的2-6字符?
- 如何在用户登录的时候运行一个dll
- 请问哪个版本的softice可以用在winxp+sp2上?
- 请问有从int或double直接转换为CString类的函数吗?
- First-chance exception in sitecheck.exe (KERNEL32.DLL)?
- 如何用指针代替数组
- 急!!求助大神关于MFC绘图中的参数传递!
- 在函数中如何返回字符串数组??????
- 函数传值问题。。。。。。。。。。。。。。(请教)
其中: function
一个函数,指定 .exe 文件或 DLL 的用户定义起始地址。
备注
/ENTRY 选项指定作为 .exe 文件或 DLL 的起始地址的函数。必须用 __stdcall 调用约定来定义函数。必须按 WinMain(对于 .exe 文件)或 DllEntryPoint(对于 DLL)的 Win32 API 中记录的内容定义参数和返回值。建议让链接器设置入口点,以便 C 运行时库正确初始化,并执行静态对象的 C++ 构造函数。默认情况下,起始地址为 C 运行时库中的函数名。链接器根据程序的属性来选择该函数,如下表所示。函数名称 ...的默认值
mainCRTStartup(或 wmainCRTStartup) 使用 /SUBSYSTEM:CONSOLE 的应用程序;调用 main(或 wmain)
WinMainCRTStartup(或 wWinMainCRTStartup) 使用 /SUBSYSTEM:WINDOWS 的应用程序;调用 WinMain(或 wWinMain),它必须用 __stdcall 来定义
_DllMainCRTStartup DLL;调用 DllMain(如果存在),DllMain 必须用 __stdcall 来定义 如果未指定 /DLL 或 /SUBSYSTEM 选项,则链接器将根据是否定义了 main 或 WinMain 来选择子系统和入口点。函数 main、WinMain 和 DllMain 是三种用户定义的入口点形式。在创建托管映像时,使用 /ENTRY 指定的函数必须具有 (LPVOID var1, DWORD var2, LPVOID var3) 的签名。在 Visual Studio 开发环境中设置此链接器选项 打开此项目的“属性页”对话框。有关详细信息,请参见设置 Visual C++ 项目属性。
单击“链接器”文件夹。
单击“高级”属性页。
修改“入口点”属性。
LIBCD.lib(crt0.obj) : error LNK2019: 无法解析的外部符号 _main ,该符号在函数 _mainCRTStartup 中被引用
Debug/Hello.exe : fatal error LNK1120: 1 个无法解析的外部命令生成时间 0:00
生成日志保存在“file://e:\XSource\Hello\Debug\BuildLog.htm”中
Hello - 2 错误,0 警告
---------------------- 完成 --------------------- 生成: 0 已成功, 1 已失败, 0 已跳过
GetCommandLine
来获得命令行,通过获得的命令行字符串来分析命令行参数