本文整理汇总了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);
}