惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Y
Y Combinator Blog
博客园_首页
量子位
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
H
Help Net Security
The Cloudflare Blog
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
A
About on SuperTechFans
腾讯CDC
H
Hackread – Cybersecurity News, Data Breaches, AI and More
D
DataBreaches.Net
L
LangChain Blog
Stack Overflow Blog
Stack Overflow Blog
Jina AI
Jina AI
月光博客
月光博客
云风的 BLOG
云风的 BLOG
博客园 - 聂微东
Hugging Face - Blog
Hugging Face - Blog
雷峰网
雷峰网
C
Check Point Blog
V
V2EX
T
Tailwind CSS Blog
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
Microsoft Security Blog
Microsoft Security Blog

博客园 - 龙巢NET刀

Windows位图文件格式[转] Windows堆栈区别[转] 聚焦3D地形编程第五章GeomipMapping for the CLOD 聚焦3D地形编程第四章光照化地形 聚焦3D地形编程第三章纹理化地形 聚焦3D地形编程第一章 The Journey into the great Outdoors 聚焦3D地形编程第二章Terrain 101 枚举驱动器 - 龙巢NET刀 - 博客园 文件遍历目录 和InjectFile配套InjectDLL - 龙巢NET刀 - 博客园 和InjectFile配套TestOne 激动的InjectFile PE文件加区块 PE文件 我的简历 进度 我的经历我的历史 内嵌Lua问题 BGET内存分配器
通过GUI方式打印信息
龙巢NET刀 · 2007-05-14 · via 博客园 - 龙巢NET刀

由于更改入口后就不允许调用CRT运行时库了,所以不得以改为使用
图形方式输出了。

更好的方式是采用Dialog加编辑框方式。
#include <windows.h>
#include <iostream>
using namespace std;

#pragma comment(linker, "/subsystem:WINDOWS")
#pragma comment(linker, "/ENTRY:main")


int main();

void EntryPoint()
{
      main();
}

#define SAFE_DELAPIHEAP(M_HDL,p) { if((p)!=NULL) { HeapFree((M_HDL), 0, (void*)(p)); }}

char* g_szBuf = NULL;
int   g_bufSize = 260;
const int   g_GUILines = 50;

void GetStrText(HANDLE param_hdl, char* szText)
{
     int size = lstrlen(szText);
  g_bufSize = g_bufSize + size;

  char* buf = NULL;
     buf = (char*)HeapAlloc(param_hdl, 0, g_bufSize);
  if(buf != NULL)
  {
      lstrcpy(buf, g_szBuf);
   lstrcat(buf, szText);

      // Ò»´ÎÐÔÌî³äµ½È«¾Ö»º³åÇø
   SAFE_DELAPIHEAP(param_hdl, g_szBuf);
      g_szBuf = (char*)HeapAlloc(param_hdl, 0, g_bufSize);
   if(g_szBuf!=NULL){
     lstrcpy(g_szBuf, buf);
   }
  }
     // ɾ³ýÁÙʱ¿Õ¼ä
  SAFE_DELAPIHEAP(param_hdl, buf);    
}

int main()
{
 HANDLE hdl = GetProcessHeap();
 g_szBuf = (char*)HeapAlloc(hdl, 0, g_bufSize);
    lstrcpy(g_szBuf, " ");
 
    GetStrText(hdl, "Hello World");
 GetStrText(hdl ," IBM\n");
 GetStrText(hdl, "Thank you all the same\n");
   
 for(int i=0;i<g_GUILines;++i) {
  char tmpBuf[260] = {0};
  wsprintf(tmpBuf, "%s\n", "Hello World");
  GetStrText(hdl, tmpBuf);
 }


    MessageBox(NULL, g_szBuf, 0, 0);
   
 SAFE_DELAPIHEAP(hdl, g_szBuf);
 
 return 0;
}