我有两个类,A和B. A是B的父类,我有一个函数,它接受一个类型A的类的指针,检查它是否也是类型B,如果是,将调用另一个接受指向类型B的类的指针的函数.当函数调用另一个函数时,我提供reinterpret_cast(a)作为参数.如果这看起来很模糊,这里是一个代码示例:
void abc(A * a) {
if (a->IsA("B")) { //please dont worry much about this line,
//my real concern is the reinterpret_cast
def(reinterpret_cast<B *>(a));
};
};
Run Code Online (Sandbox Code Playgroud)
所以既然你知道我如何调用"def",我想知道reinterpret_cast是否实际上返回了一个类型B的指针作为参数发送到def.我将不胜感激任何帮助.谢谢
在我的汇编程序中,我AllocConsole从kernel32库中调用,但是我不知道如何从分配的控制台获取输入.是否有任何winapi包含的函数将从当前程序中的已分配控制台获取输入?
CALL AllocConsole
Run Code Online (Sandbox Code Playgroud)
所有的功能,如ReadConsole都需要一个输入缓冲区,我不知道如何为我分配的控制台获取输入缓冲区,更不用说该功能是否能满足我的需求.
总而言之,winapi中是否有一个函数可以从程序中分配的控制台获取输入?
谢谢
我正在使用masm汇编程序,我正在使用kernel32.lib来创建堆内存,但是在HeapCreate过程的Windows API页面上,它并没有告诉我它的返回值存储在何处.(即堆的句柄)我会假设它存储在EAX?因为大多数程序都将其返回值放入EAX.在我调用HeapCreate之后,我调用HealAlloc在我的堆中分配一些内存:
INCLUDE \masm32\include\kernel32.inc
INCLUDELIB \masm32\lib\kernel32.lib
.CODE
PUSH DWORD PTR 00h ;max size
PUSH DWORD PTR 00h ;initial size
PUSH DWORD PTR 04h ;flOption
CALL HeapCreate
PUSH DWORD PTR 04h ;dwBytes (the size in bytes)
PUSH DWORD PTR 04h ;dwFlag
PUSH EAX ;I am not sure if the heap handle is stored in EAX or not?
CALL HeapAlloc
END
Run Code Online (Sandbox Code Playgroud)
基本上,我不知道HeapCreate存储返回值的位置.如果有人能澄清在哪里,我会很感激.
谢谢