各位大虾:
您们好
我现在正在用vc++6.0编一个软件,该软件可以采集数据,可以显示。
我现在想边采集边显示,显示部分用opengl的函数实现,由于采集时间比较长,我想用多线程来采集和显示,我现在可以让采集部分在后台运行,但是画图显示部分不行,因为多线程的控制函数是全局函数,当我把画图所用的函数放进去后,他就出错误.
下面是绘图的源代码:
         HWND hWnd=GetSafeHwnd();
HDC hDC=::GetDC(hWnd);
wglMakeCurrent(hDC,m_hRC);

glPushMatrix();
glPointSize(2.0);
glBegin(GL_POINTS);
for(j=0;j<1300;j++)//increase width 1 pixel by 1 pixel
{

c0[0]=-0.91+(2.0/1300)*j;
c0[1]=-0.91+(2.0/8)*(log10(data_phys[0][j]*15));

color[0]=1.0;
color[1]=0.0;
color[2]=0.0;

glColor3dv(color);
glVertex2dv(c0);


} glEnd();
glFlush();
glBegin(GL_POINTS); for(j=0;j<1300;j++)
{

c0[0]=-0.91+(2.0/1300)*j;
c0[1]=-0.91+(2.0/8)*(log10(data_phys[1][j]*15));

color[0]=1.0;
color[1]=1.0;
color[2]=0.0;

glColor3dv(color);
glVertex2dv(c0);


} glEnd();
glPopMatrix();
wglMakeCurrent(NULL,NULL);
SwapBuffers(hDC);
glFlush();
当我把他们放到线程控制函数中后,就出如下错误:
        error C2065: 'GetSafeHwnd' : undeclared identifier
        error C2065: 'm_hRC' : undeclared identifier
我该怎么办?
请各位帮帮我,不胜感激!!

解决方案 »

  1.   


    #include <afxwin.h> 头文件吧。
      

  2.   

    你用的是全局函数,需要在全局函数中得到窗口指针 *p:再用p->GetSafeHwnd();p->m_hRC
      

  3.   

    谢谢两位
    我的程序中包括#include <afxwin.h> 头文件
    另外,我的全局函数在view中定义的,我怎样在全局函数中得到窗口指针*p哪?