2个编译中遇到的问题。

zxsean 2009-07-24 05:34:32
问题1:一下代码dbgevent我声明成dim dbgevent as debug_bug直接报错。貌似还需要开头声明debug??
问题2:while(key)该怎么翻译成vb的?注:我开头已经声明了dim key as boolean ( key=true)


bool CDebugInjector::Run( void )
{
    DEBUG_EVENT dbgEvent;
    DWORD dwContinueStatus;
    // The debug loop.  Runs until the debuggee terminats
    while ( true )
    {
        WaitForDebugEvent(&dbgEvent, INFINITE);
        dwContinueStatus = HandleDebugEvent( dbgEvent );        
        if ( dbgEvent.dwDebugEventCode == EXIT_PROCESS_DEBUG_EVENT )
            break;       
        ContinueDebugEvent( dbgEvent.dwProcessId,
                            dbgEvent.dwThreadId,
                            dwContinueStatus );
    }
    return true;
}
...全文
148 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zxsean 2009-07-24
  • 打赏
  • 举报
回复
我就是把vc的翻译成vb
liguicd 2009-07-24
  • 打赏
  • 举报
回复
一个
liguicd 2009-07-24
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 zxsean 的回复:]
没人帮忙……囧。
[/Quote]
把VC的东西发到VB里来了,还说没人帮忙...
zxsean 2009-07-24
  • 打赏
  • 举报
回复
没人帮忙……囧。
zxsean 2009-07-24
  • 打赏
  • 举报
回复
那源码中:DEBUG_EVENT dbgEvent;直接无视了??
SYSSZ 2009-07-24
  • 打赏
  • 举报
回复
dim dbgevent as debug_bug直接报错的原因是VB中就不存在debug_bug这种数据类型;dim dbgevent就行了;
while(key)是条件语句的VB表述是:
If key Then
……
End If
或:
If key=True Then
……
End If
「已注销」 2009-07-24
  • 打赏
  • 举报
回复
首先请在声明段写上:

Private Type DEBUG_EVENT
dwDebugEventCode As Long
dwProcessId As Long
dwThreadId As Long
DATA(20) As Long '此处的声明方式不是绝对标准,仅是相对可处理的办法.
'实际代码中如果设计到(先假设变量被定义为 Dim DE As DEBUG_EVENT)
'如果出现 DE.XXX 而其中的XXX不是上面结构中前三个成员的时候,
'你的代码要根据这个结构做出修改.
End Type

'然后才可以在程序里声明:
Dim dbgEvent As DEBUG_EVENT



'while ( true ) 比较好翻译,可以类似下面
Do While True
'相关执行代码
'注意: DO 的循环是条件真时一直循环,而你给的条件就是个 True(一直为真)
'所以可以说这里是个死循环, 一般的情况是,在此处的代码中会有一定的判断:
'符合了某条件就会跳出循环.
Loop


另外,DEBUG_EVENT是调试事件通知结构,属于底层较复杂结构,这么看起来你那个程序编写难度不低哦,所以如果你对 VB 了解不是太多的话,转起来恐怕。。。。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧