error LNK2001: unresolved external symbol _main ???

tiancanshi 2003-06-09 10:15:06
下载了别人的一段代码学习(都是CPP和h文件),在vc中自动加了一个工作区文件。然后把所有的CPP和h文件加进去,编译没有错误,运行时出现:
Compiling...
cjpeg.cpp
stdafx.cpp
Linking...
LIBC.lib(crt0.obj) : error LNK2001: unresolved external symbol _main
Release/cjpeg.exe : fatal error LNK1120: 1 unresolved externals
Error executing link.exe.

cjpeg.exe - 2 error(s), 0 warning(s)

是什么原因呢?我很菜,请大虾指点。

其中主文件如下:
#define NAME "DDExample1"
#define TITLE "Direct Draw Example 1"

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <fstream.h>
#include <ddraw.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <io.h>
#include "cjpeg.h"

#define TIMER_ID 1
#define TIMER_RATE 30

void showAFile();
DWORD WINAPI demo(LPVOID lpparm);

LPDIRECTDRAW lpDD; // DirectDraw object
LPDIRECTDRAWSURFACE lpDDSPrimary; // DirectDraw primary surface
LPDIRECTDRAWSURFACE lpDDSBack; // DirectDraw back surface
DWORD RBitMask,GBitMask,BBitMask;
BOOL bActive; // is application active?
BOOL bQuit = false;
HANDLE thandle;
HWND hwnd;

WORD (*RGBto16bit)(unsigned char r,unsigned char g,unsigned char b);

BOOL initWindow( HINSTANCE hInstance, int nCmdShow );
BOOL initDDraw(void);
long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam );
void finiObjects( void );

time_t tt;
long frames,rate,k;

int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{ MSG msg;
lpCmdLine = lpCmdLine;
hPrevInstance = hPrevInstance;
if( !initWindow( hInstance, nCmdShow ) )
{ return FALSE;
}
if(!initDDraw())
{ goto error;
}
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
error:
char buf[40];
sprintf(buf, "初始化失败!");
MessageBox( hwnd, buf, "ERROR", MB_OK );
return FALSE;
}

BOOL initWindow( HINSTANCE hInstance, int nCmdShow )
{ WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = NULL;
wc.lpszMenuName = NAME;
wc.lpszClassName = NAME;
RegisterClass( &wc );

hwnd = CreateWindowEx(
WS_EX_TOPMOST,
NAME,
TITLE,
WS_POPUP,
0, 0,
GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ),
NULL,
NULL,
hInstance,
NULL );

if( !hwnd )
{
return FALSE;
}

ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );
// MessageBox( hwnd, "Hello!", "", MB_OK);
return TRUE;
}

WORD RGBto16bit565(unsigned char r,unsigned char g,unsigned char b)
{ return (((WORD)r<<8)&0xf800)|(((WORD)g<<3)&0x07e0)|((WORD)b>>3);
}

WORD RGBto16bit555(unsigned char r,unsigned char g,unsigned char b)
{ return (((WORD)r<<7)&0x7c00)|(((WORD)g<<2)&0x03e0)|((WORD)b>>3);
}

BOOL initDDraw(void)
{ DDSURFACEDESC ddsd;
DDSCAPS ddscaps;
HRESULT ddrval;
char buf[256];
ddrval = DirectDrawCreate( NULL, &lpDD, NULL );
if( ddrval == DD_OK )
{ // Get exclusive mode
ddrval = lpDD->SetCooperativeLevel( hwnd,
DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
if(ddrval == DD_OK )
{ ddrval = lpDD->SetDisplayMode( 800,600, 16 );
if( ddrval == DD_OK )
{ // Create the primary surface with 1 back buffer
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS |
DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE |
DDSCAPS_FLIP |
DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
if( ddrval == DD_OK )
{ ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
ddrval = lpDDSPrimary->GetAttachedSurface(&ddscaps,
&lpDDSBack);
if( ddrval == DD_OK )
{ DDPIXELFORMAT pixelFormat;
pixelFormat.dwSize = sizeof(DDPIXELFORMAT);
lpDDSPrimary->GetPixelFormat(&pixelFormat);
if((pixelFormat.dwFlags&DDPF_RGB)==0)
goto error;
RBitMask = pixelFormat.dwRBitMask;
GBitMask = pixelFormat.dwGBitMask;
BBitMask = pixelFormat.dwBBitMask;
if(((WORD)GBitMask) == 0x07e0)
RGBto16bit = RGBto16bit565;
else
RGBto16bit = RGBto16bit555;
DWORD tID;
if((thandle = CreateThread(NULL,0,demo,NULL,0,&tID)) != NULL)
return TRUE;
}
}
}
}
}
error:
wsprintf(buf, "Direct Draw Init Failed (%08lx)\n", ddrval );
MessageBox( hwnd, buf, "ERROR", MB_OK );
finiObjects();
DestroyWindow( hwnd );
return FALSE;
}

long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam )
{ switch( message )
{
case WM_ACTIVATEAPP:
bActive = wParam;
break;

case WM_CREATE:
break;

case WM_SETCURSOR:
SetCursor(NULL);
return TRUE;
case WM_KEYDOWN:
switch( wParam )
{
case VK_ESCAPE:
case VK_F12:
bQuit = true;
while(WaitForSingleObject(thandle,200) != WAIT_OBJECT_0)
;
PostMessage(hWnd, WM_CLOSE, 0, 0);
break;
}
break;
case WM_PAINT:
break;

case WM_DESTROY:
finiObjects();
PostQuitMessage( 0 );
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}

void finiObjects( void )
{
if( lpDD != NULL )
{
if( lpDDSPrimary != NULL )
{ lpDDSPrimary->Release();
lpDDSPrimary = NULL;
}
lpDD->Release();
lpDD = NULL;
}
}

...全文
44 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
hanwg 2003-06-09
  • 打赏
  • 举报
回复
工程类型错误,在VC中新建一个Win32 Application工程,再把代码加入。
zzqzzq 2003-06-09
  • 打赏
  • 举报
回复
/*void showAFile()
{ static long f = -1;
_finddata_t fileinfo;
HDC hdc;
DDSURFACEDESC ddsd;
HRESULT ddrval;
ddsd.dwSize = sizeof(ddsd);
CJpeg jpg;
if(!jpg)
return;
re_search:
if(f == -1)
{ f = _findfirst("*.jp*g", &fileinfo);
if(f == -1)
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
if(((WORD)GBitMask) == 0x07e0)
ddbltfx.dwFillColor = 0x8000;
else
ddbltfx.dwFillColor = 0x4000;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
if (lpDDSBack->GetDC(&hdc) == DD_OK)
{ char cc[40];
sprintf(cc,"没有找到jpeg文件!");
SetBkColor( hdc, RGB( 128, 0, 0 ) );
SetTextColor( hdc, RGB( 255, 255, 0 ) );
TextOut( hdc, 220,240, cc, lstrlen(cc) );
lpDDSBack->ReleaseDC(hdc);
}
goto flip;
}
}
else
{ if(_findnext(f,&fileinfo) != 0)
{ f = -1;
goto re_search;
}
}
if(jpg.open(fileinfo.name,IDCT_INT) == FALSE)
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0x0010;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
if (lpDDSBack->GetDC(&hdc) == DD_OK)
{ char cc[150];
if(strlen(fileinfo.name) < 100)
sprintf(cc,"%s 不支持的jpeg文件格式!",fileinfo.name);
else
sprintf(cc,"不支持的jpeg文件格式!");
SetBkColor( hdc, RGB( 0, 0, 128 ) );
SetTextColor( hdc, RGB( 255, 255, 0 ) );
TextOut( hdc, 220,240, cc, lstrlen(cc) );
lpDDSBack->ReleaseDC(hdc);
}
goto flip;
}
else
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0x0000;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
while ((ddrval = lpDDSBack->Lock(NULL, &ddsd, 0, NULL)) == DDERR_WASSTILLDRAWING)
;
if( ddrval == DD_OK )
{ UINT imgX,imgY,dspX,dspY,dspWidth,dspHeight,j,k;
JPEG_IMAGE_INFO info;
BYTE *p1,*p2,*p3;
WORD *p;
jpg.getImageInfo(&info);
if(info.imgWidth > 800)
dspWidth = 800,dspX = 0,imgX = (info.imgWidth-800)/2;
else
dspWidth = info.imgWidth,imgX = 0,dspX = (800-info.imgWidth)/2;
if(info.imgHeight > 600)
dspHeight = 600,dspY = 0,imgY = (info.imgHeight-600)/2;
else
dspHeight = info.imgHeight,imgY = 0,dspY = (600-info.imgHeight)/2;
p = (WORD*)ddsd.lpSurface;
p1 = info.image[0];
p2 = info.image[1];
p3 = info.image[2];
if(info.comNum == 3)
{ p += 800*dspY+dspX;
p1 += info.bufWidth*imgY+imgX;
p2 += info.bufWidth*imgY+imgX;
p3 += info.bufWidth*imgY+imgX;
for(j=0;j<dspHeight;j++)
{ for(k=0;k<dspWidth;k++)
{ p[k] = RGBto16bit(p1[k],p2[k],p3[k]);
}
p += 800;
p1 += info.bufWidth;
p2 += info.bufWidth;
p3 += info.bufWidth;
}
}
else
{ p += 800*dspY+dspX;
p1 += info.bufWidth*imgY+imgX;
for(j=0;j<dspHeight;j++)
{ for(k=0;k<dspWidth;k++)
{ p[k] = (*RGBto16bit)(p1[k],p1[k],p1[k]);
}
p += 800;
p1 += info.bufWidth;
}
}
lpDDSBack->Unlock(NULL);
}
}
flip:
while( 1 )
{
ddrval = lpDDSPrimary->Flip( NULL, 0 );
if( ddrval == DD_OK )
{
break;
}
if( ddrval == DDERR_SURFACELOST )
{
ddrval = lpDDSPrimary->Restore();
if( ddrval != DD_OK )
{
break;
}
}
if( ddrval != DDERR_WASSTILLDRAWING )
{
break;
}
}
}
*/
DWORD WINAPI demo(LPVOID lpparm)
{
/*static time_t time1 = 0,time2;
while(1)
{ if( bQuit )
return -1;
if( bActive )
{ time(&time2);
if(difftime(time2,time1) > 1)
{ showAFile();
time1 = time2;
}
}
}
*/ return -1;
}





zzqzzq 2003-06-09
  • 打赏
  • 举报
回复
不必更换,还有一个办法。用Win32 Application重建一个A simple Win32 application工程, 然后将上面的程序拷进去,并用加入工程添加其他文件。我刚试验成功。
// yyuu.cpp : Defines the entry point for the application.
//

#include "stdafx.h"

#define NAME "DDExample1"
#define TITLE "Direct Draw Example 1"

#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <windowsx.h>
#include <fstream.h>
#include <ddraw.h>
#include <string.h>
#include <stdio.h>
#include <time.h>
#include <math.h>
#include <io.h>
//#include "cjpeg.h"

#define TIMER_ID 1
#define TIMER_RATE 30

//void showAFile();
DWORD WINAPI demo(LPVOID lpparm);

LPDIRECTDRAW lpDD; // DirectDraw object
LPDIRECTDRAWSURFACE lpDDSPrimary; // DirectDraw primary surface
LPDIRECTDRAWSURFACE lpDDSBack; // DirectDraw back surface
DWORD RBitMask,GBitMask,BBitMask;
BOOL bActive; // is application active?
BOOL bQuit = false;
HANDLE thandle;
HWND hwnd;

WORD (*RGBto16bit)(unsigned char r,unsigned char g,unsigned char b);

BOOL initWindow( HINSTANCE hInstance, int nCmdShow );
BOOL initDDraw(void);
long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam );
void finiObjects( void );

time_t tt;
long frames,rate,k;

int PASCAL WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow)
{ MSG msg;
lpCmdLine = lpCmdLine;
hPrevInstance = hPrevInstance;
if( !initWindow( hInstance, nCmdShow ) )
{ return FALSE;
}
if(!initDDraw())
{ goto error;
}
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
error:
char buf[40];
sprintf(buf, "初始化失败!");
MessageBox( hwnd, buf, "ERROR", MB_OK );
return FALSE;
}

BOOL initWindow( HINSTANCE hInstance, int nCmdShow )
{ WNDCLASS wc;
wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WindowProc;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.hInstance = hInstance;
wc.hIcon = LoadIcon( hInstance, IDI_APPLICATION );
wc.hCursor = LoadCursor( NULL, IDC_ARROW );
wc.hbrBackground = NULL;
wc.lpszMenuName = NAME;
wc.lpszClassName = NAME;
RegisterClass( &wc );

hwnd = CreateWindowEx(
WS_EX_TOPMOST,
NAME,
TITLE,
WS_POPUP,
0, 0,
GetSystemMetrics( SM_CXSCREEN ),
GetSystemMetrics( SM_CYSCREEN ),
NULL,
NULL,
hInstance,
NULL );

if( !hwnd )
{
return FALSE;
}

ShowWindow( hwnd, nCmdShow );
UpdateWindow( hwnd );
// MessageBox( hwnd, "Hello!", "", MB_OK);
return TRUE;
}

WORD RGBto16bit565(unsigned char r,unsigned char g,unsigned char b)
{ return (((WORD)r<<8)&0xf800)|(((WORD)g<<3)&0x07e0)|((WORD)b>>3);
}

WORD RGBto16bit555(unsigned char r,unsigned char g,unsigned char b)
{ return (((WORD)r<<7)&0x7c00)|(((WORD)g<<2)&0x03e0)|((WORD)b>>3);
}

BOOL initDDraw(void)
{ DDSURFACEDESC ddsd;
DDSCAPS ddscaps;
HRESULT ddrval;
char buf[256];
/* ddrval = DirectDrawCreate( NULL, &lpDD, NULL );
if( ddrval == DD_OK )
{ // Get exclusive mode
ddrval = lpDD->SetCooperativeLevel( hwnd,
DDSCL_EXCLUSIVE | DDSCL_FULLSCREEN );
if(ddrval == DD_OK )
{ ddrval = lpDD->SetDisplayMode( 800,600, 16 );
if( ddrval == DD_OK )
{ // Create the primary surface with 1 back buffer
ddsd.dwSize = sizeof( ddsd );
ddsd.dwFlags = DDSD_CAPS |
DDSD_BACKBUFFERCOUNT;
ddsd.ddsCaps.dwCaps = DDSCAPS_PRIMARYSURFACE |
DDSCAPS_FLIP |
DDSCAPS_COMPLEX;
ddsd.dwBackBufferCount = 1;
ddrval = lpDD->CreateSurface( &ddsd, &lpDDSPrimary, NULL );
if( ddrval == DD_OK )
{ ddscaps.dwCaps = DDSCAPS_BACKBUFFER;
ddrval = lpDDSPrimary->GetAttachedSurface(&ddscaps,
&lpDDSBack);
if( ddrval == DD_OK )
{ DDPIXELFORMAT pixelFormat;
pixelFormat.dwSize = sizeof(DDPIXELFORMAT);
lpDDSPrimary->GetPixelFormat(&pixelFormat);
if((pixelFormat.dwFlags&DDPF_RGB)==0)
goto error;
RBitMask = pixelFormat.dwRBitMask;
GBitMask = pixelFormat.dwGBitMask;
BBitMask = pixelFormat.dwBBitMask;
if(((WORD)GBitMask) == 0x07e0)
RGBto16bit = RGBto16bit565;
else
RGBto16bit = RGBto16bit555;
DWORD tID;
if((thandle = CreateThread(NULL,0,demo,NULL,0,&tID)) != NULL)
return TRUE;
}
}
}
}
}
error:
wsprintf(buf, "Direct Draw Init Failed (%08lx)\n", ddrval );
MessageBox( hwnd, buf, "ERROR", MB_OK );
finiObjects();
DestroyWindow( hwnd );
*/ return FALSE;
}

long FAR PASCAL WindowProc( HWND hWnd, UINT message,
WPARAM wParam, LPARAM lParam )
{ switch( message )
{
case WM_ACTIVATEAPP:
bActive = wParam;
break;

case WM_CREATE:
break;

case WM_SETCURSOR:
SetCursor(NULL);
return TRUE;
case WM_KEYDOWN:
switch( wParam )
{
case VK_ESCAPE:
case VK_F12:
bQuit = true;
while(WaitForSingleObject(thandle,200) != WAIT_OBJECT_0)
;
PostMessage(hWnd, WM_CLOSE, 0, 0);
break;
}
break;
case WM_PAINT:
break;

case WM_DESTROY:
finiObjects();
PostQuitMessage( 0 );
break;
}
return DefWindowProc(hWnd, message, wParam, lParam);
}

void finiObjects( void )
{
if( lpDD != NULL )
{
if( lpDDSPrimary != NULL )
{ lpDDSPrimary->Release();
lpDDSPrimary = NULL;
}
lpDD->Release();
lpDD = NULL;
}
}
tiancanshi 2003-06-09
  • 打赏
  • 举报
回复
老兄,不行啊,按你说的改了,还是同样的错误····
zzqzzq 2003-06-09
  • 打赏
  • 举报
回复
版本冲突。将PASCAL换为WINAPI,FAR PASCAL 换为CALLBACK。
tiancanshi 2003-06-09
  • 打赏
  • 举报
回复
void showAFile()
{ static long f = -1;
_finddata_t fileinfo;
HDC hdc;
DDSURFACEDESC ddsd;
HRESULT ddrval;
ddsd.dwSize = sizeof(ddsd);
CJpeg jpg;
if(!jpg)
return;
re_search:
if(f == -1)
{ f = _findfirst("*.jp*g", &fileinfo);
if(f == -1)
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
if(((WORD)GBitMask) == 0x07e0)
ddbltfx.dwFillColor = 0x8000;
else
ddbltfx.dwFillColor = 0x4000;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
if (lpDDSBack->GetDC(&hdc) == DD_OK)
{ char cc[40];
sprintf(cc,"没有找到jpeg文件!");
SetBkColor( hdc, RGB( 128, 0, 0 ) );
SetTextColor( hdc, RGB( 255, 255, 0 ) );
TextOut( hdc, 220,240, cc, lstrlen(cc) );
lpDDSBack->ReleaseDC(hdc);
}
goto flip;
}
}
else
{ if(_findnext(f,&fileinfo) != 0)
{ f = -1;
goto re_search;
}
}
if(jpg.open(fileinfo.name,IDCT_INT) == FALSE)
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0x0010;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
if (lpDDSBack->GetDC(&hdc) == DD_OK)
{ char cc[150];
if(strlen(fileinfo.name) < 100)
sprintf(cc,"%s 不支持的jpeg文件格式!",fileinfo.name);
else
sprintf(cc,"不支持的jpeg文件格式!");
SetBkColor( hdc, RGB( 0, 0, 128 ) );
SetTextColor( hdc, RGB( 255, 255, 0 ) );
TextOut( hdc, 220,240, cc, lstrlen(cc) );
lpDDSBack->ReleaseDC(hdc);
}
goto flip;
}
else
{ DDBLTFX ddbltfx;
ddbltfx.dwSize = sizeof(ddbltfx);
ddbltfx.dwFillColor = 0x0000;
lpDDSBack->Blt(NULL,NULL,NULL,DDBLT_COLORFILL|DDBLT_WAIT, &ddbltfx);
while ((ddrval = lpDDSBack->Lock(NULL, &ddsd, 0, NULL)) == DDERR_WASSTILLDRAWING)
;
if( ddrval == DD_OK )
{ UINT imgX,imgY,dspX,dspY,dspWidth,dspHeight,j,k;
JPEG_IMAGE_INFO info;
BYTE *p1,*p2,*p3;
WORD *p;
jpg.getImageInfo(&info);
if(info.imgWidth > 800)
dspWidth = 800,dspX = 0,imgX = (info.imgWidth-800)/2;
else
dspWidth = info.imgWidth,imgX = 0,dspX = (800-info.imgWidth)/2;
if(info.imgHeight > 600)
dspHeight = 600,dspY = 0,imgY = (info.imgHeight-600)/2;
else
dspHeight = info.imgHeight,imgY = 0,dspY = (600-info.imgHeight)/2;
p = (WORD*)ddsd.lpSurface;
p1 = info.image[0];
p2 = info.image[1];
p3 = info.image[2];
if(info.comNum == 3)
{ p += 800*dspY+dspX;
p1 += info.bufWidth*imgY+imgX;
p2 += info.bufWidth*imgY+imgX;
p3 += info.bufWidth*imgY+imgX;
for(j=0;j<dspHeight;j++)
{ for(k=0;k<dspWidth;k++)
{ p[k] = RGBto16bit(p1[k],p2[k],p3[k]);
}
p += 800;
p1 += info.bufWidth;
p2 += info.bufWidth;
p3 += info.bufWidth;
}
}
else
{ p += 800*dspY+dspX;
p1 += info.bufWidth*imgY+imgX;
for(j=0;j<dspHeight;j++)
{ for(k=0;k<dspWidth;k++)
{ p[k] = (*RGBto16bit)(p1[k],p1[k],p1[k]);
}
p += 800;
p1 += info.bufWidth;
}
}
lpDDSBack->Unlock(NULL);
}
}
flip:
while( 1 )
{
ddrval = lpDDSPrimary->Flip( NULL, 0 );
if( ddrval == DD_OK )
{
break;
}
if( ddrval == DDERR_SURFACELOST )
{
ddrval = lpDDSPrimary->Restore();
if( ddrval != DD_OK )
{
break;
}
}
if( ddrval != DDERR_WASSTILLDRAWING )
{
break;
}
}
}

DWORD WINAPI demo(LPVOID lpparm)
{ static time_t time1 = 0,time2;
while(1)
{ if( bQuit )
return -1;
if( bActive )
{ time(&time2);
if(difftime(time2,time1) > 1)
{ showAFile();
time1 = time2;
}
}
}
}

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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