阅读:2346回复:14
如何在Visual C++的嵌入_asm{ }中调用VMMCall _MapPhysToLinear
我在C++程序头部加入了
#include <C:\\98DDK\\inc\\win98\\vmm.inc> 想在C程序中调用VMMCall _MapPhysToLinear 我用 _asm{ .......... VMMCall _MapPhysToLinear ....... } 为何有如下错误信息 c:\\98ddk\\inc\\win98\\vmm.inc(2) : error C2146: syntax error : missing \';\' before identifier \'EQU\' c:\\98ddk\\inc\\win98\\vmm.inc(2) : error C2501: \'ifndef\' : missing storage-class or type specifiers c:\\98ddk\\inc\\win98\\vmm.inc(2) : fatal error C1004: unexpected end of file found 我该这么办??????? |
|
最新喜欢:Snare |
沙发#
发布于:2002-03-04 16:42
系统运行级别不一样,你不可以调用vxd里的函数
|
|
|
板凳#
发布于:2002-03-04 18:57
系统运行级别不一样,你不可以调用vxd里的函数我忘了说我在之前已经切入零级了,再说出错分明是编译错误,我想编译器不会管你是不是在零级吧 :P :P :P |
|
地板#
发布于:2002-03-04 20:15
yiyiz
那是汇编的头文件,VC应为*.h DDK中有VMM。H的头文件你找一下。 我想你找到也没用!!! 你还是在你的ASM{...}加入: INT 20 DB XXXXXXXX ;SEVER ID 不知道ID,用SOFTICE的VCALL _MapPhysToLinear 查看ID号!!! _MapPhysToLinear的使用方发可查看DDK文档。 :) |
|
|
地下室#
发布于:2002-03-05 08:43
我早就试过了,但是不能解决如下问题: 我用的是 INT 20H db 00h,01h,00h,6ch 但是编译器提示如下: C:\\PROGRAM FILES\\MICROSOFT VISUAL STUDIO\\MyProjects\\FirstRing0\\Ring0.cpp(52) : error C2400: inline assembler syntax error in \'opcode\'; found \'constant\' 我该怎么办? |
|
5楼#
发布于:2002-03-05 09:34
INT 改成小写,试试! |
|
|
6楼#
发布于:2002-03-05 11:00
我大写小写都试过了,编译错误毫无区别.
|
|
7楼#
发布于:2002-03-05 12:11
那改成 __asm {
db 0cdh, 020h; db 00h,01h,00h,6ch; }呢? 这样应该没有问题吧? |
|
8楼#
发布于:2002-03-05 12:56
这样行么?
int 20h;nop;nop;nop;nop; 编译后,用UEDIT修改成00h,01h,00h,6ch |
|
|
9楼#
发布于:2002-03-05 14:07
这样行么? 谢谢flyfox: 可以解决编译问题,但总觉得有点旁门左道,所以允许我留10分给正道人士. |
|
10楼#
发布于:2002-03-05 21:33
对不起我搞错了SOFTICE _MapPhysToLinear得到的是涵数首址TRW2000才是ID。
用SOFTICE得到的值CALL好了! __asm { push edi mov edi,XXXXXXXX ;softice得到的值 ... ;压参数 call edi ... ;还原堆 |
|
|
11楼#
发布于:2002-03-06 21:23
\"killhs\" , 您这样调用是可行的. 不过, 在使用这种\"直接调用内存地址\"的方法前, 最好先检测一下操作系统版本. 不同操作系统, 内存中的情形不一定相同.
|
|
12楼#
发布于:2002-03-07 10:30
这个问题我以前也碰到过
我用 \"_emit\"来解决,具体的使用可参考MSDN。 #define mm_get_v _asm _emit 0x01 _asm _emit 0x00 _asm _emit 0x00 _asm _emit 0x00 _asm { int 20h vmm_get_v ///////////vmm_get_cur_handle } |
|
13楼#
发布于:2002-03-07 12:34
楼上的朋友,到用户留言去取你该得的10分。
|
|
14楼#
发布于:2002-03-07 16:26
这个问题我以前也碰到过 高!我又学了一招! |
|
|