1.如何理解逻辑坐标和设备坐标?
2.什么是volatile变量,他有什么用?
3.我用CLASS WIZARD创建了一类,可是这个类由于某种原因我不想用了,我应该如何删除它??
我将它所在的文件删除了,虽然这个类在ClassView中看不见了,但在class wizard里面这个类仍然存在,应该怎么办??
2.什么是volatile变量,他有什么用?
3.我用CLASS WIZARD创建了一类,可是这个类由于某种原因我不想用了,我应该如何删除它??
我将它所在的文件删除了,虽然这个类在ClassView中看不见了,但在class wizard里面这个类仍然存在,应该怎么办??
解决方案 »
- 关于类的询问,请多多帮忙,新手上路不容易。
- vs2010MFC多文档中如何创建一个属性对话框?
- vc2010 调用VC6.0的clPlot 使用CWnd::Create时断言错误
- 哪位哥们给个iocp的例子?最好能调试通过的.有些说明的。谢谢了。给份
- 有什么方法可以支持快捷方式和文件夹
- error LNK2001: unresolved external symbol _main
- OnEraseBkgnd(CDC* pDC)函数什么意思,怎么使用?
- 在richedit或edit里实现插入动态表情?(bmp,GIF格式)一定要用插入OLE对象的方法吗
- 哪位给讲讲Visula C++ 6.0 创建的工程的整体结构呀
- suddy你好,CJ608例子编译出错帮我看一下???????????????
- 帮我推荐几本书?
- 我的困惑__路在何方_迷茫
当往GDI函数中送入值时,给出的是逻辑尺寸或方位。Windows将它转换为输出设备的尺寸或方位。设备环境决定的GDI调用结果的实际尺寸或方位。当调用Ellipse(100, 100, 300, 300)绘制一个圆时,就是在告诉GDI,以横坐标300,纵坐标300为圆心,绘制一个半径为100个单位的圆。碰巧,默认模式下MM_TEXT下,1个单位被转换为一个象素。对于输出设备不一定如此。因为它的水平和垂直分辨率不一定是相同的。逻辑坐标 并非所有所有设备都是同样生产出来的。例如,显示器屏幕可以包含1024×768个或更多的象素,但是屏幕实际宽度是不大相同的。在1024*768的分辨率下,12英寸宽的屏幕水平方向上大约有85个象素,而8英寸的屏幕每英寸大约有102个象素。而对于屏幕以外的其他输出设备,如打印机、标绘器、传真机等,情况更加复杂。
如果程序在屏幕上显示了一个表格,并允许发送到打印机或传真机上,可能就要将其他设备环境的映射模式改为非文本,而将屏幕设备环境保持为MM_TEXT模式。接着就靠设备驱动程序将逻辑单位转换为打印机的可用单位。2.volatile volatile关键字是const关键字的反义词。后者告诉编译器:标识符的值是不变得。而volatile修饰符告诉编译器:其值可能会在任何时候改变,甚至可能会在外界的影响下改变。
当使用了volatile修饰符之后,编译器不会去试图对该变量进行优化。通常,当一个变量为未数条语句出现之后,编译器会将其放入寄存器或内部缓冲区。当用到它时,在将它取出。如果变量的值突然发生了变化(例如变量存放的是计算机系统时钟当前时间的值),变量就不再有效了,但是运行时代码无法得知可能的变化。
另外,如果程序改变了一个volatile变量的值,即使程序中的下一条语句会再一次修改它,它也会立即被写回内存。
在当今运用的编程技术——ActiveX、COM——当中,这样的事件完全是有可能的。在分布式COM中,程序的一部分可能在其他计算机上运行,因而数值得包含有可能来源于其他计算机。
即使抛开先进技术不谈,在多线程的程序当中也有可能由一个线程修改另一个线程的变量。在大多数的单线程的应用中,可能会觉得volatile没有用,但是将来会发现,越来越多的地方可以用到它。3.关闭工程,在工程目录下,找到.CLW文件,删除,然后再重新打开工程,打开ClassWizard就可以了。