当前位置: 首页>>代码示例>>C++>>正文


C++ Comment::va方法代码示例

本文整理汇总了C++中Comment::va方法的典型用法代码示例。如果您正苦于以下问题:C++ Comment::va方法的具体用法?C++ Comment::va怎么用?C++ Comment::va使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Comment的用法示例。


在下文中一共展示了Comment::va方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: handleOK

void LineEditDialog::handleOK(HWND p_dlg) {
  s8 str[1024];

  ModuleInfo* info = g_dbg->code_window()->GetCurModule();
  if (info == NULL) return;

  u32 va = info->addr() + g_dbg->code_window()->select() * 4;

  // オペコードを反映
  GetDlgItemText(p_dlg, IDC_OPCODE, str, 255);
  u32 opcode = strtoul(str, NULL, 16);
  if (*((u32*)VA2PA(va)) != opcode) {
    int cmd_id = g_dbg->command_id();
    // リコンパイルコードが破棄されるので一旦止める
    if (cmd_id != -1) {
      SendMessage(g_dbg->code_window()->dlg()->getHwnd(), WM_COMMAND, ID_DEBUG_PAUSE, 0);
    }

    PatchEntry* patch = g_dbg->findPatch(va, 4, false);

    if (patch) {
      patch->SetDisable();

      // パッチを更新
      patch->update(va - patch->va(), 4, reinterpret_cast<const s8*>(&opcode));

      patch->SetEnable();
    } else {
      // パッチを作成
      g_dbg->addPatch(new PatchEntry(va, 4, true, reinterpret_cast<const s8*>(&opcode)));
    }
    g_dbg->doStaticCodeAnalyze();

    // 再開
    if (cmd_id != -1) {
      SendMessage(g_dbg->code_window()->dlg()->getHwnd(), WM_COMMAND, cmd_id, 0);
    }
  }

  // コメントを反映
  GetDlgItemText(p_dlg, IDC_COMMENT, str, 255);
  str[255] = '\0';
  ds_util::strtrim(str);

  Comment* comment = g_dbg->find_comment(va);
  if (comment == NULL && str[0] != '\0') {
    // 新規追加
    g_dbg->add_comment(new Comment(g_dbg->get_current_ddb(), va, str));
  } else if (comment && str[0] != '\0') {
    // 更新
    comment->set_text(str);
  } else if (comment && str[0] == '\0') {
    // 削除
    int idx = g_dbg->get_comment_idx(comment->va());
    g_dbg->delete_comment(idx);
  }

  // ラベルを反映
  GetDlgItemText(p_dlg, IDC_LABEL, str, 255);
  str[255] = '\0';
  ds_util::strtrim(str);

  Label* label = g_dbg->find_codelabel(va);
  if (label == NULL && str[0] != '\0') {
    // 新規追加
    g_dbg->add_codelabel(new Label(g_dbg->get_current_ddb(), va, str));
  } else if (label && str[0] != '\0') {
    // 更新
    label->set_text(str);
  } else if (label && str[0] == '\0') {
    // 削除
    int idx = g_dbg->get_codelabel_idx(label->va());
    g_dbg->delete_codelabel(idx);
  }
  EndDialog(p_dlg, IDOK);
}
开发者ID:assick,项目名称:ggspc,代码行数:76,代码来源:line_edit_dialog.cpp


注:本文中的Comment::va方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。