阅读:1398回复:5
guid的问题。
guid好像有三种形式。各自用在什么地方的?
怎样通过guid打开设备呢? |
|
|
沙发#
发布于:2002-07-08 16:50
有四种形式:
1. 定义一个 IMPLEMENT_OLECREATE 宏,它允许Automation clients创建一个CCmdTarget-derived类的实例,例如: // {CA761230-ED42-11CE-BACD-00AA0057B223} IMPLEMENT_OLECREATE(<<class>>, <<external_name>>, 0xca761230, 0xed42, 0x11ce, 0xba, 0xcd, 0x0, 0xaa, 0x0, 0x57, 0xb2, 0x23); 2. 定义一个 DEFINE_GUID 宏,它通常使用在非MFC程序中,例如: // {CA761231-ED42-11CE-BACD-00AA0057B223} DEFINE_GUID(<<name>>, 0xca761231, 0xed42, 0x11ce, 0xba, 0xcd, 0x0, 0xaa, 0x0, 0x57, 0xb2, 0x23); 3. 作为一个静态结构进行声明,例如: // {CA761232-ED42-11CE-BACD-00AA0057B223} static const GUID <<name>> = { 0xca761232, 0xed42, 0x11ce, { 0xba, 0xcd, 0x0, 0xaa, 0x0, 0x57, 0xb2, 0x23 } }; 4. 为注册表入口或编辑指定的一个形式,例如: {CA761233-ED42-11CE-BACD-00AA0057B223} 你用DriverWorks随便创建一个例子,一般包含两部分exe和SYS,你看一下EXE中是如何用GUID打开的。 |
|
板凳#
发布于:2002-07-08 16:57
ds生成的exe程序中,使用了两个类:
HANDLE hDev; CDeviceInterfaceClass DevClass(pClassGuid, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; CDeviceInterface DevInterface(&DevClass, instance, pError); if (*pError != ERROR_SUCCESS) return INVALID_HANDLE_VALUE; hDev = CreateFile(DevInterface.DevicePath(),……); 类CDeviceInterfaceClass,CDeviceInterface 好像是ds定义的,我怎样才能在自己的dll中应用呢? |
|
|
地板#
发布于:2002-07-16 17:16
我可以在自己的dll中使用了,只要把原来工程中的连接加进去,就可以了。
那我用ds做好以后在其他机器上安装要拷贝那些库文件和dll呢? |
|
|
地下室#
发布于:2002-07-19 13:23
没人回答了?给分吧 :(
|
|
|
5楼#
发布于:2002-07-24 14:10
没人回答了?给分吧 :( 早被版主抢跑了。 |
|
|