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

推荐订阅源

月光博客
月光博客
人人都是产品经理
人人都是产品经理
Hugging Face - Blog
Hugging Face - Blog
有赞技术团队
有赞技术团队
阮一峰的网络日志
阮一峰的网络日志
罗磊的独立博客
博客园_首页
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
大猫的无限游戏
大猫的无限游戏
博客园 - 司徒正美
S
SegmentFault 最新的问题
Jina AI
Jina AI
美团技术团队
酷 壳 – CoolShell
酷 壳 – CoolShell
小众软件
小众软件
WordPress大学
WordPress大学
爱范儿
爱范儿
博客园 - Franky
量子位
V
V2EX
Apple Machine Learning Research
Apple Machine Learning Research
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
雷峰网
雷峰网

博客园 - 龙巢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;
}