Same code,different machine,different result

I have code a program and compiled two of the copy on different machine,they all can pass the compile and start up,but one of the programes can’t work properly.I see in the output windows in the VC++,and found that they(the programes run under the different machine) used the different *.dll files.The program came out exception use two more *.dll,one of them came out error.

BOTH the OS is win2000,and the code was compiled under the Visual C++.net,the machine have the same Opengl32.dll ,glut.dll,gl.dll…
the different is only the hardware.

I want to KNOW:
why same program call the different *.dll?

It could be gl driver dlls, which show up in the VC++ output window and each machine has different hardware.

What is the error you are seeing?

yes,I found that the dll came out error have some relation with the driver,because it was installed with the driver,
BUT there is something I can’t understand:it first work without any error
glPixelZoom(xscale, yscale);
glPixelStorei(GL_UNPACK_ROW_LENGTH,tempxx);
glPixelStorei(GL_UNPACK_SKIP_PIXELS,cx);
glPixelStorei(GL_UNPACK_SKIP_ROWS,cy);
GLvoid* pbits=(GLvoid*)bmp.GetBits();
void* ppp=bmp.GetPixelAddress(tempxx-1,tempyy-1);
if(OnPaintFlag==1)
{
OnPaintFlag=0;
}
glDrawPixels(tempxx,tempyy,GL_BGR_EXT, GL_UNSIGNED_BYTE,ppp);
When I change the parameter :“yscale” or"xscale",It come out error"
Unhandled exception at 0x6907a2d4 in MyDlgOpenGL.exe: 0xC0000005: Access violation reading location 0x031deb4b."

glPixelZoom(xscale, yscale);
find that when xscale is smaller than 0.5,it report error,
But in fact the picture is bigger than the windows,that is it should do it properly

Looks like driver bug… can you post some informations about your hw? (driver, card, OS)

btw… using glPixelZoom and glDrawPizels are most slowest way to that. It is better to store bitmap into texture and then draw texture mapped quad.

yooyo

Because I just want to display a BMP in the CWnd,and the BMP is very big(maybe 1024*8k),but i found that texture always have confine of the bmp SIZE,so I choose to use drawpixel

Then split large texture in several smaller. If you use glDrawPixels with zoom all this will be processed on CPU.

GPU can help you only if image data is in GPU memory ie. textures.

You still didn’t post hw spec. and driver version. It might be driver bug…

yooyo

VIA Tech VT8361/VT8601 Graphics Control
driver vision 6.13.10.3137
VIA Technologies, Inc.

the error comes with WINNT\system32 ridicdp.dll which is installed with the display card.

I think it will be so annoying to use the texture,because it will have to draw on the wnd,and the wnd have to move, so it will be troublesome when the thing user draw cover two smaller texture

Originally posted by aQ:
[b]the error comes with WINNT\system32 ridicdp.dll which is installed with the display card.

I think it will be so annoying to use the texture,because it will have to draw on the wnd,and the wnd have to move, so it will be troublesome when the thing user draw cover two smaller texture[/b]
It might be a driver bug. To test it, make simple app which should cause error. If error appear again, try to find new driver for this card or make another solution.

I dont understand problem with moveing window. Anyway… I know it is boring to code texture codepath, but, belive me, right now it is a fastest way to do this.

yooyo

Thanks

I found that the progame can’t be run under the two other machine,so I doublt it is NOT a driver program,but what can I do??

This topic was automatically closed 183 days after the last reply. New replies are no longer allowed.