#include "stdafx.h"
#include<windows.h>
#include<strsafe.h>//win2003SDK必须安装 要不无此头文件。此文件是为了实现StringCchPrintf,StringCchLength。

#define MAX_THREADS 5
#define BUF_SIZE 255

typedef struct _MyData{
int val1;
int val2;
}MYDATA,*PMYDATA;

DWORD WINAPI ThreadProc(LPVOID lpParam)
{
  HANDLE hStdout;
  PMYDATA pData;
  TCHAR msgBuf[BUF_SIZE];
  size_t cchStringSize;
  DWORD dwChars;
  hStdout=GetStdHandle(STD_OUTPUT_HANDLE);
  if(hStdout==INVALID_HANDLE_VALUE)
  return 1;
  
  pData=(PMYDATA)lpParam;

  StringCchPrintf(msgBuf,BUF_SIZE,TEXT("Parameters=%d,%d\n"),pData->val1,pData->val2);
  //printf("%d,%d\n",pData->val1,pData->val2);
  StringCchLength(msgBuf,BUF_SIZE,&cchStringSize);
  WriteConsole(hStdout,msgBuf,cchStringSize,&dwChars,NULL);

  HeapFree(GetProcessHeap(),0,pData);
  return 0;
}
void main()
{
  PMYDATA pData;
  DWORD dwThreadId[MAX_THREADS];
  HANDLE hThread[MAX_THREADS];
  int i;

  for(i=0;i<MAX_THREADS;i++)
  {

    pData=(PMYDATA)HeapAlloc(GetProcessHeap(),HEAP_ZERO_MEMORY,sizeof(MYDATA));
    if(pData==NULL)
      ExitProcess(2);

    pData->val1=i;
    pData->val2=i+100;
    hThread[i]=CreateThread(
                  NULL,//defaultsecurityattributes
                  0,//usedefaultstacksize
                  ThreadProc,//threadfunction
                  pData,//argumenttothreadfunction
                  0,//usedefaultcreationflags
                  &dwThreadId[i]);//returnsthethreadidentifier

    if(hThread[i]==NULL)
    {
      ExitProcess(i);
    }
  }

  WaitForMultipleObjects(MAX_THREADS,hThread,TRUE,INFINITE);

  for(i=0;i<MAX_THREADS;i++)
  {
    CloseHandle(hThread[i]);
  }

  system("pause");
}

最新文章

  1. android.view.InflateException: Binary XML file line #34: Error inflating class
  2. rails 常用的知识点
  3. ios中蓝牙自动连接出现硬件提示框的问题
  4. JMeter学习-026-JMeter 分布式(远程)参数化测试实例
  5. js 操作ASP.NET服务器控件
  6. C++多态公有继承
  7. 数据库自定义表值函数Split(@LongStr, @SplitStr, @IsDistinct )
  8. Java之向左添加零(000001)
  9. C# winform 右下角弹窗
  10. AngularJS 的一些坑
  11. JavaScript面向对象--继承 (超简单易懂,小白专属)
  12. 【猿分享第10期】微信小程序Meetup扫盲专场回顾(转载)
  13. H5页面分享微信自定义分享title和img
  14. linux 一个读写锁的异常导致的故障
  15. js点击获取标签元素
  16. WebService快速上手
  17. 教你轻松计算AOE网关键路径
  18. (11)shutil模块(文件处理模块)
  19. QCon技术干货:个推基于Docker和Kubernetes的微服务实践
  20. C#之父

热门文章

  1. PrepareStatement
  2. centos6.5 安装JDK
  3. monkey参数应用
  4. review15
  5. 我的博客搬家到https://www.w2le.com/了
  6. LINQ to Entities 不识别方法&ldquo;Int32 ToInt32(System.String)&rdquo;,因此该方法无法转换为存储表达式。
  7. python中的列表和字典(二)
  8. syq小姐姐的分享的历年考试经验
  9. Project://STARK
  10. 如何显示PHP运行错误