虽然点不多,只给一点表示谢意.但问题对我来说很难!研究了一天也没有结果,看下面的正题吧

jxw1987628 jxw1987628 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
//先给出异常的地方 这里会弹出一个错误 :UnHandled exception avocess..0xccccc 之类的窗口
try
{
hwnd=CreateWindow(szAppName,"MultiPleUIThread",WS_OVERLAPPEDWINDOW,0,0,400,600,NULL,NULL,hInstance,NULL);
set_terminate(mytest);
throw"##################!";
}
catch(...)
{
cout<<"error! here....."<<endl;
}
////////////////////////////////////////////////////////////////
//下面是所有源代码: 并附有详细注释!
程序主要做的是:
在主窗体中创建4个相同的子窗体,在创建每个子窗体时启动每个字窗体对应的线程,其窗口一样,线呈函数里的代码也一样
是纯Win32Application程序!

请先不要判定是创建窗体错误,那里单步调试的时候总会执行catch语句的...........

///////////////////////////////////////////////////////////////////
// UIMutiThread.cpp : Defines the entry point for the application.
//

#include "stdafx.h"
LRESULT APIENTRY WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam);//窗口消息函数声明
///////////////////////////////////////////////////////////////////////////
HANDLE hThread[4]; //全局线程句柄数组
///////////////////////////////////////////////////////////////////////////

void mytest()
{}
int APIENTRY WinMain(HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow)
{




static char szAppName[]="MultiThread";
HWND hwnd;
MSG msg;
WNDCLASS wndclass;
WNDPROC WndProc;

wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpfnWndProc=WndProc;
wndclass.cbClsExtra=0;
wndclass.cbWndExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);

wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.lpszClassName=szAppName;
wndclass.lpszMenuName=NULL;

int a=RegisterClass(&wndclass);
if(!a)
cout<<"error here!\n"<<GetLastError()<<endl;
try
{
hwnd=CreateWindow(szAppName,"MultiPle UI Thread",WS_OVERLAPPEDWINDOW,0,0,400,600,NULL,NULL,hInstance,NULL);
set_terminate(mytest);
throw"##################!";
}
catch(...)
{
cout<<"error! here....."<<endl;
}

if(hwnd==NULL)
cout<<"error here!\n"<<GetLastError()<<endl;

ShowWindow(hwnd,nCmdShow);
while(GetMessage(&msg,NULL,0,0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);


}
return msg.wParam;
}

LRESULT APIENTRY WndProc(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)//主线程窗口消息处理函数
{

typedef LRESULT CALLBACK MyWndProc(HWND,UINT,WPARAM,LPARAM);//函数原形声明
MyWndProc *WndProc1 = NULL,*WndProc2 = NULL,*WndProc3=NULL,*WndProc4=NULL;//函数指针
static char *szChildClass[]={"Child1","Child2","Child3","Child4"};//子窗口类名数组
static HWND hwndChild[4];//字窗口句柄数组
HINSTANCE hInstance;

WNDPROC ChildProc[]={WndProc1,WndProc2,WndProc3,WndProc4};//函数指针数组
int i,cxClient,cyClient;//存储窗口尺寸变量
WNDCLASSEX wndclass;
switch(iMsg)
{
case WM_CREATE :
hInstance=(HINSTANCE)GetWindowLong(hwnd,GWL_HINSTANCE);
wndclass.cbSize=sizeof(wndclass);
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.cbClsExtra=0;
wndclass.hInstance=hInstance;
wndclass.hIcon=NULL;
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.hIconSm=NULL;
wndclass.cbWndExtra=0;
wndclass.lpszMenuName=NULL;

for(i=0;i<4;i++)
{
wndclass.lpfnWndProc=ChildProc[i];
wndclass.lpszClassName=szChildClass[i];
RegisterClassEx(&wndclass);
hwndChild[i]=CreateWindow(szChildClass[i],NULL,WS_CHILDWINDOW|WS_BORDER|WS_VISIBLE,0,0,0,0,hwnd,(HMENU)i,hInstance,NULL);

}


return 0;

case WM_SIZE:
cxClient=LOWORD(lParam);
cyClient=HIWORD(wParam);
for( i=0;i<4;i++)
MoveWindow(hwndChild[i],(i%2)*cxClient/2,(i>1)*cyClient/2,cxClient/2,cyClient/2,TRUE);
return 0;

case WM_CHAR:
if(wParam=='q')
DestroyWindow(hwnd); //输入'q'时退出应用程序
return 0;
case WM_DESTROY:
PostQuitMessage(0);
for(int i=0;i<4;i++)
CloseHandle(hThread[i]);
return 0;
}
return DefWindowProc(hwnd,iMsg,wParam,lParam);
}

//自定义结构体传递参数
typedef struct
{
HWND hwnd;
int cxClient;
int cyClient;
int cyChar;
BOOL bKill;
}PARAMS,*PPARAMS;


//全局线程函数的声明
unsigned long __stdcall Thread1(PVOID pvoid);//子窗口一的线程函数,产生素数并输出
unsigned long __stdcall Thread2(PVOID pvoid);//其余和子窗口一相同
unsigned long __stdcall Thread3(PVOID pvoid);
unsigned long __stdcall Thread4(PVOID pvoid);
LRESULT APIENTRY WndProc1(HWND hwnd,UINT iMsg,WPARAM wParam,LPARAM lParam)//子窗口1消息处理函数
{
static PARAMS params;
switch(iMsg)
{
case WM_CREATE:
params.hwnd=hwnd;
params.cyChar=HIWORD(GetDialogBaseUnits());
hThread[0]=CreateThread(NULL,0,Thread1,¶ms,0,NULL);//启动线程1
SetThreadPriority(hThread[0],THREAD_PRIORITY_BELOW_NORMAL);
return 0;
case WM_SIZE:
params.cyClient=HIWORD(lParam);
return 0;
case WM_DESTROY:
params.bKill=true;
return 0;
}
return DefWindowProc(hwnd,iMsg,wParam,lParam);
}

//自定义小函数检测字符有没有超过窗口高度
int CheckBottom(HWND hwnd,int cyClient,int cyChar,int iLine)
{
if(iLine*cyChar+cyChar>cyClient)
{
InvalidateRect(hwnd,NULL,TRUE);
UpdateWindow(hwnd);
iLine=0;
}
return iLine;
}

unsigned long __stdcall Thread1(PVOID pvoid)//子窗口一的线程函数,产生素数并输出
{
char szBuffer[16];
int iNum=1,iLine=0,i,iSqrt;
PPARAMS pparams;
pparams=PPARAMS(pvoid);
while(!pparams->bKill)
{
do{
if(++iNum<0)
iNum=0;
iSqrt=(int)sqrt(iNum);
for(i=2;i<=iSqrt;i++)
if(iNum%i==0)
break;
}while(i<=iSqrt);
iLine=CheckBottom(pparams->hwnd,pparams->cyChar,pparams->cyClient,iLine);
wsprintf(szBuffer,"%d",iNum);
HDC hdc=GetDC(pparams->hwnd);
TextOut(hdc,0,iLine*pparams->cyChar,szBuffer,strlen(szBuffer));
ReleaseDC(pparams->hwnd,hdc);
iLine++;
}
return 0;
}
...全文

相关推荐

一文掌握AI提示设计实证研究的关键技术点

在AI时代,提示设计(Prompt Design)是连接人类意图与模型能力的桥梁。无论是让GPT-4生成一篇营销文案,还是让Claude解决复杂的数学问题,好的提示能让模型输出更符合预期的结果。然而,当前多数提示设计仍依赖“试错法”:产品经理凭经验调整指令,算法工程师靠直觉增减示例,结果往往是“薛定谔的提示”——有时有效,有时无效,难以复现。问题陈述:如何从“经验驱动”转向“数据驱动”,用实证研究的方法系统验证提示设计的效果?如何科学地回答“示例数量对模型准确性有何影响?”“指令的具体性是否比语气更重要?

AI架构师小马

19、循环群与微分同胚群的表示研究

本文深入研究了循环群 $LS^1$ 和微分同胚群 $Diff^+(S^1)$ 的表示理论。通过构造循环群的射影酉表示并计算其上循环公式,揭示了其与阿贝尔电荷群的联系。同时,将微分同胚群实现为受限酉群的子群,推导出其对应的李代数结构,并进一步得到了维拉索罗代数的正能表示。文章还探讨了能量算子与酉算子之间的对易关系,揭示了其潜在的物理意义。这些结果在数学物理、量子场论及弦理论等领域具有重要应用价值。

cicd6pipeline

三相维也纳PFC整流器闭环仿真控制策略研究-中点电位平衡、无功补偿与双载波SVPWM(Simulink仿真实现)

内容概要:本文围绕三相维也纳PFC整流器的闭环仿真控制策略开展深入研究,重点聚焦中点电位平衡控制、无功功率补偿能力以及双载波SVPWM调制技术的集成与优化。通过Simulink平台构建30kW三相维也纳整流器的完整仿真模型,系统性地实现了基于零序电流注入法的中点电位主动平衡控制策略,有效抑制了直流侧中点电压偏移问题;同时设计了高性能的双闭环控制系统,实现了单位功率因数运行与无功功率的灵活动态调节。研究进一步引入双载波SVPWM调制技术(包含马鞍波与羊角波两种形式),提升了系统的电压利用率、调制效率及动态响应性能。全文涵盖了从主电路建模、控制算法设计、调制策略实现到仿真验证的全过程,为高效率、高功率密度的电力电子变换器系统设计提供了完整的理论依据与实践参考。; 适合人群:具备电力电子技术、自动控制理论及仿真建模基础,从事新能源发电、电力系统电能质量治理、工业自动化或电动汽车充电设施等相关领域研究的研发工程师与高校研究生。; 使用场景及目标:①深入掌握三相维也纳PFC整流器的工作机理与系统级控制架构设计;②学习并实现中点电位平衡、无功补偿等关键控制技术;③掌握双载波SVPWM调制策略的原理与仿真实现方法;④应用于新能源并网逆变器、储能变流器、高端电源等对电能质量和变换效率有严苛要求的电力变换系统开发与性能优化。; 阅读建议:建议结合Simulink仿真环境进行实践操作,重点关注控制器参数的整定过程、中点电位波动的抑制效果、无功指令的动态响应特性以及双载波调制波形的生成逻辑与频谱特性,应按照文中所述流程逐步搭建模型并调试,以深入理解各控制模块之间的耦合关系及系统的整体动态行为。

三伯

高校科研机构如何通过技术转移实现成果商业化?.docx

科易网基于40亿+科创知识图谱数据库,深度探索AI技术在技术转移、成果转化、技术经纪、知识产权、产业创新、科技招商等垂直领域的多样化应用场景,研究科技创新领域的AI+数智化解决方案,推动科技创新与产业创新智能化发展。

BIZKEEN

技术转移机构如何筛选高潜力合作项目?.docx

技术转移机构如何筛选高潜力合作项目?

BIZKEEN
评论 6
收藏 已收藏
分享
返回顶部
jxw1987628
VC/MFC 16,550 成员 421,606 内容