C/C++
文章平均质量分 54
emesjx
这个作者很懒,什么都没留下…
展开
-
DOS操作系统下PCI板卡访问方法(二)
<br />访问特定的PCI功能设备的配置空间一般分为以下几个步骤:<br />首先,按照端口0xCF8的信息格式,组成相应的配置字,写入端口OxCF8中。然后通过读取端口0xCFC,得到每个功能设备配置空问中相应的寄存器内容。接着,由读出的配置空间中设备ID和制造商ID与指定的功能设备的设备ID和制造商ID相比较。若不匹配则重复进行上述操作直到匹配为止。最后,由获得的相应的总线号、设备号以及功能号,通过读写端口OxCF8和0xCFC就可以访问特定板卡的配置空间了。<br />下面给出一个通过PCI配置寄存转载 2010-12-04 12:22:00 · 4877 阅读 · 1 评论 -
如何在VC6中申请分配大容量内存
<br />1、最简单、直接的方法是使用C++运算符new,例如:对于分辨率为x*y*8bit的图像,申请分配内存方法:<br />BYTE *pBuf=new BYTE[x*y];<br />用此方法一定要注意,只要pBuf不使用了,就要用delete将其释放掉。<br />2、较复杂的方法是使用API函数GlobalAlloc和LocalAlloc,此方法分配的内存是以“堆”形式提供的,可使用GlobalLock/LocalLock对所申请的内存加锁,释放则使用GlobalFree/LocalFree。原创 2010-11-17 18:00:00 · 5706 阅读 · 1 评论 -
如何在DOS平台中对PCI卡编程
<br />大部分PCI卡,如PCI声卡、PCI显卡、PCI数字I/O卡、PCI A/D、D/A采集卡等均可在DOS平台(实模式)进行编程,具体方法是使用汇编语言调用PCI BIOS中断1AH,调用参数及调用细节可参阅“PCI BIOS Specification Ver2.x”,调用实例可参阅“CH365 PCI总线接口芯片 中文手册”。有几点要注意:<br />1、主板上必须有PCI BIOS,一般只要有PCI插槽或PC104+总线的就有(486以上主板都有)。<br />2、PCI总线的一些先进技术,原创 2010-11-10 16:12:00 · 1985 阅读 · 0 评论 -
如何在DOS下使用USB设备
<br />虽然目前DOS系统已很少使用,但在工业控制等实时要求很强的领域使用x86处理器的嵌入式系统中(PC104、Mini-ITX),DOS依然是首选操作系统。<br />USB是目前最常用的外设接口,在DOS下使用USB设备需要USB设备的驱动程序,比如OHCI/UHCI可以驱动USB鼠标等设备,USB_CD可以驱动USB光驱等设备,DUSE可以驱动USB硬盘、光驱、软驱等设备,Motto Hairu可以用转为ASPI的方法来驱动USB接口的软盘、硬盘、光驱、闪存盘(例如U盘等),而USB4DOS则可原创 2010-11-08 13:48:00 · 3700 阅读 · 0 评论 -
LabCVI常见问题及解决方法(六)
<br />26. CVI中如何实现进度条功能?<br />答:CVI中可以使用slide控件实现进度条功能。也可以使用Programmer's Toolbox里带的函数来创建进度条。<br /> <br />27. CVI中的TUI文件?<br />答:TUI文件实际上是UIR文件的文本版本,在使用时同UIR文件的调用方式相同。<br /> <br />28. CVI中使用控件的Tab顺序功能时如何略过某些控件?<br />答:将控件改变为Indicator控件,在CV转载 2010-10-24 11:13:00 · 3391 阅读 · 0 评论 -
LabCVI常见问题及解决方法(四)
<br />16. 如何在CVI中使用inp等低级函数?<br />答:CVI中是不能直接使用这种类型的函数对端口地址进行操作。需要使用CVILowLevelSupportDriverLoaded函数打开CVI对低级函数的支持。<br /> <br />17. 请问CVI中的事件驱动是指什么?<br />答:事件驱动是CVI应用程序和用户进行交互的核心原理,具体是指应用程序通过响应用户界面所发生的“事件”来执行代码、调用回调函数。这些事件可以是发生在面板上的对象或者是面板自身。使用L转载 2010-10-24 11:09:00 · 2594 阅读 · 0 评论 -
LabCVI常见问题及解决方法(一)
<br />1. 使用CVI9.0调用由VC++6.0编写的DLL,该DLL在VC中调用是可以的,输出方式也是C语言的。但是在CVI中调用该DLL时,总是提示missing prototype,如何解决?<br />答:设置BUILD OPTION<br />在options->Build options | c language options中取消Require function prototypes的检测<br /> <br />2. CVI中如何向设计好的word表格中添转载 2010-10-24 10:54:00 · 5064 阅读 · 0 评论 -
LabCVI常见问题及解决方法(五)
<br />21. CVI中如何实现系统托盘图标?<br />答:在CVI中可以通过Programmer's Toolbox提供的System Tray Icons来实现系统托盘图标。将应用程序的图标放到托盘上去。<br /> <br />22. CVI中如何实现及时提示功能?(Tips)<br />答:在CVI中为了实现Windows中当鼠标指针放到某个按钮控件上时自动出现提示,简单说明该按钮的功能。可以使用SetCtrlToolTipAttribute函数来实现该功能。<br /转载 2010-10-24 11:11:00 · 2446 阅读 · 1 评论 -
LabCVI常见问题及解决方法(七)
<br />31. CVI中如何使用UDP协议?<br />答:CVI中没有带有关于UDP协议的fp文件,需要使用winsock来写。<br /> <br />32. CVI下如何编写多线程程序?<br />答:可以使用函数模版中的Utility Library目录下的函数,首先用CmtNewThreadPool (int Maximum_Number_of_Threads, int *Pool_Handle)函数创建一个线程池(也可以使用程序默认的线程池),然后使用CmtSched转载 2010-10-24 11:14:00 · 2385 阅读 · 1 评论 -
LabCVI常见问题及解决方法(三)
<br />11. 如何在VC中调试用CVI编写的DLL?<br />答:首先应有VC写的调用程序。在CVI中需要进行的设置:在Specify External Process中选择调用dll的可执行文件。配置Target Settings为Debug,选择dll的目录为可执行文件所在的目录。就可以VC调试CVI的DLL,调试时,会自动进入CVI环境。<br /> <br />12. 在CVI中生成DLL时,是否可以将其他的DLL(或LIB)加入到工程中来?<br />答:库文件可以转载 2010-10-24 11:02:00 · 3621 阅读 · 1 评论 -
LabCVI常见问题及解决方法(二)
<br />6. CVI中如何使用非NI公司的硬件产品?该公司提供了一个fp文件。<br />答:一般来说通常可以调用产品销售商提供的动态链接库,有些大公司也提供fp文件,该文件可以直接使用,就可以达到使用硬件的目的了。在使用前,可以直接将该文件添加入项目中,也可以在Library中定制fp文件的加载。<br /><br />7. CVI中如何实现多窗口显示?<br />答:在创建窗口面板时需要设置窗口属性为浮动型窗口,使用LoadPanel和DisplayPanel函数加载和显示窗转载 2010-10-24 10:55:00 · 2874 阅读 · 0 评论 -
LabCVI常见问题及解决方法(八)
<br />36. 如何处理PANEL的最大化和最小化问题?<br />答:有EVENT_PANEL_SIZE事件可以获得,然后可以读取当前panel的大小来确定区分MAXIMIZE盒MINIMIZE事件.<br /> <br />37. 如何在CVI中编写DLL?<br />答:首先建立一个新工程,然后创建一个源程序文件,作为dll主程序。利用CVI提供的编辑器功能插入DllMain,这时在源程序文件中就有dll的框架程序。生成的两个函数不能修改。这时就可以在该程序中编写自己的DL转载 2010-10-24 11:17:00 · 1946 阅读 · 0 评论 -
WDF驱动中KMDF与UMDF区别
众所周知, 早期的Windows 95/98的设备驱动是VxD(Virtual Device Driver),其中x表示某一类设备。从Windows 2000开始,开发驱动程序必以WDM(Windows Driver Model)为基础的,但是,如果使用DDK来开发WDM,其开发难度之大,根本不能奢望像用户模式应用程序开发那样容易,因此,一般用户都是使用WinDriver、DriverStudio之类的第三方工具。为改善这种局面,从Vista开始,微软推出了新的驱动程序开发环境WDF(Windows Dri原创 2010-10-24 10:44:00 · 10370 阅读 · 0 评论 -
DOS操作系统下PCI板卡访问方法(一)
<br />1 前言<br />当前,随着计算机技术的飞速发展,对于高速、高性能板卡的需求越来越大。曾在工控机中广泛应用的ISA总线逐渐被淘汰。相比之下,PCI总线作为一种高性能的局部总线,具有兼容性好,传输速度高,不受处理器限制以及支持“即插即用”(Plug&Play)等优点,正逐步取代ISA总线而广泛应用于PC机和工控机中。在今后相当长的一段时间内,开发应用基于PCI总线的扩展板卡将显得尤为重要。<br />Windows操作系统和DOS操作系统是目前在工控机中使用较多的两种操作系统,有着各自的优缺点。转载 2010-12-04 12:18:00 · 4272 阅读 · 1 评论 -
MFC ActiveX控件与ATL ActiveX控件的比较
<br />1、两者均可使用VS IDE中AppWizard来建立框架,前者使用“MFC ActiveX Control Wizard”,后者使用“ATL COM AppWizard”。<br />2、用MFC建立的ActiveX控件的扩展名缺省为“.ocx”;用ATL(活动模板库)建立的扩展名缺省为“.dll”。<br />3、用MFC建立ActiveX控件要简单得多,原因是MFC省去聊很多低级的COM概念,且控件设计中可使用多种MFC类,如CString、 CWnd 、CDC等;用ATL建立Active原创 2010-11-24 18:36:00 · 1625 阅读 · 0 评论