用CB6建立WIN32 SDK程序,為什麼程序一運行就退出了。

taxi 2005-02-19 11:17:54
本人用BCB6用SDK建立了一個WIN32程序,為什麼程序一運行就退出了?
工程的建立方式為file-new-other,選擇控制台應用程序,在向導中,沒有選中Use VCL, Use CLX, Multi threaded, Console Application
下面是源碼:
//---------------------------------------------------------------------------

#include <windows.h>
#include <d3d9.h>

#pragma link "d3d9.lib"

const char *CLASS_NAME = "D3DExample1";
const char *WINDOW_NAME = "My first d3d application";

LPDIRECT3D9 g_lpD3D;
LPDIRECT3DDEVICE9 g_lpD3DDevice;

HRESULT CALLBACK WndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam)
{
switch (nMsg)
{
case WM_DESTROY:
{
PostQuitMessage(0);
return 0;
}
}

return DefWindowProc(hWnd, nMsg, wParam, lParam);
}

INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
WNDCLASSEX wndCls;
memset(&wndCls, 0, sizeof(WNDCLASSEX));
wndCls.cbSize = sizeof(WNDCLASSEX);
wndCls.style = CS_HREDRAW | CS_VREDRAW | CS_OWNDC;
wndCls.lpfnWndProc = WndProc;
wndCls.hInstance = hInstance;
wndCls.hIcon = LoadIcon(0, IDI_APPLICATION);
wndCls.hCursor = LoadIcon(0, IDC_ARROW);
wndCls.hbrBackground = HBRUSH(GetStockObject(BLACK_BRUSH));
wndCls.lpszMenuName = NULL;
wndCls.lpszClassName = NULL;
wndCls.hIconSm = wndCls.hIcon;
if (!RegisterClassEx(&wndCls))
return -1;

HWND hWnd;
hWnd = CreateWindowEx(0,
CLASS_NAME,
WINDOW_NAME,
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
CW_USEDEFAULT,
NULL,
NULL,
hInstance,
NULL);
if (!hWnd)
return -1;

ShowWindow(hWnd, SW_SHOW);
UpdateWindow(hWnd);

MSG msg;
while (true)
{
if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE))
{
if (msg.message == WM_QUIT)
break;

TranslateMessage(&msg);
DispatchMessage(&msg);
}
}

DestroyWindow(hWnd);
return 0;
}
//---------------------------------------------------------------------------
...全文
79 2 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
3996906 2005-02-19
  • 打赏
  • 举报
回复
别console,直接生成应用程序,关掉那个窗体,自己生成个unit,在里面写api
类库 2005-02-19
  • 打赏
  • 举报
回复
有WinMain怎么还是控制台?
r40_tinav2.1_最终验证通过_使用CB-S来验证OV5640有横条纹fpscamera+SPI2.0成功_20171114_1443没有外层目录.7z 开发板:CB-S 1、(可选修改/调试技巧:) 除了ov5640.c之外,其它的驱动都不编译,节省编译时间! W:\ov5640_spi20_r40t\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\device\Makefile obj-m += ov5640.o #obj-m += ov2640.o #obj-m += ov7736.o #obj-m += s5k4ec.o #obj-m += s5k4ec_mipi.o #obj-m += gc2035.o #obj-m += gt2005.o #obj-m += gc0307.o #obj-m += gc0308.o #obj-m += gc0328.o #obj-m += gc0328c.o #obj-m += gc2145.o #obj-m += gc0329.o #obj-m += gc0311.o #obj-m += hi253.o #obj-m += sp2518.o #obj-m += sp2519.o #obj-m += sp0718.o #obj-m += sp0838.o #obj-m += ov16825.o #obj-m += ov5650.o #obj-m += ov5647.o #obj-m += ov5647_mipi.o #obj-m += t8et5.o #obj-m += s5k4e1.o #obj-m += s5k4e1_mipi.o #obj-m += sp2518.o #obj-m += sp0718.o #obj-m += gc5004.o #obj-m += gc5004_mipi.o #obj-m += ov5648.o #obj-m += ar0330.o #obj-m += ov5648.o #obj-m += sp5408.o #obj-m += ov12830.o #obj-m += ov8825.o #obj-m += ov8850.o #obj-m += gc2155.o #obj-m += ov8858.o #obj-m += ov13850.o #obj-m += imx214.o #obj-m += ov8858_4lane.o #obj-m += sp5409.o #obj-m += s5k5e2yx.o #obj-m += ov2710_mipi.o #obj-m += ov2686.o (这里是看ov5640的驱动的probe执行是否正确?设备ID是否读取成功!) W:\ov5640_spi20_r40t\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\device\ov5640.c static int sensor_detect(struct v4l2_subdev *sd) { data_type rdval; printk("****wyb %s:%d/%s()! \n", __FILE__, __LINE__, __func__); LOG_ERR_RET(sensor_read(sd, 0x300a, &rdval;)) printk("****wyb %s:%d/%s()! 0x300a rdval=0xx\n", __FILE__, __LINE__, __func__, rdval); if(rdval != 0x56) return -ENODEV; LOG_ERR_RET(sensor_read(sd, 0x300b, &rdval;)) printk("****wyb %s:%d/%s()! 0x300b rdval=0xx\n", __FILE__, __LINE__, __func__, rdval); if(rdval != 0x40) return -ENODEV; return 0; } (在全志R16平台改过这个文件,让摄像头不要休眠,但是全志R40平台的tina v2.1系统下不需要修改!) W:\ov5640_spi20_r40t\lichee\linux-3.10\drivers\media\platform\sunxi-vfe\vfe.c 2、(可

13,870

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder相关内容讨论区
社区管理员
  • 基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧