Dmytro
November 24th, 2015, 06:03
Good evening! I compile a plugin for IDA. The error occurs like this:
In function `vmsg (char const *, char *) ':
[Linker error] C: /IDA/idasdk66/include/kernwin.hpp: 3914: undefined reference to `__imp_callui '
This code
This code
THREAD_SAFE AS_PRINTF (1, 0) inline int vmsg (const char * format, va_list va)
{
return callui (ui_msg, format, va) .i;
}
What is it? What's this I see? I can not understand what it is callui ??
I saw two o'clock code. This callui much, very much! However, it is not clear that it can an object, because there is a point
so can not be, it is as if the function! Or something else, though?
I could not find him beginning, end or somewhere in the code it predobyavlennja callui !!
I can not my knowledge. Please, what is it?
The problem is most likely that a certain library needs to be added to your project which is actually missing.
Like me, my IDA whether all libraries? Maybe is not all that is needed for a well-ins? How can I verify that the correct kit for the entire IDA plugin?
Віндовс ХР 32. Компілятор TDM-GSS 4.7.1 32-bit
Project->Project Options-> компілятор С++ -DWIN32 -D__NT__ -D__IDP__ -v -mrtd
Linker ../IDA/idasdk66/lib/x86_win_gcc_32/ida.a
*-Wl, - Dll -shared
Project Options-> Files / Directories> header files> C: \ IDA \ idasdk66 \ include
reassign the output file name PL2.plw
There are many people here probably skillfully write plug-ins? Can someone instructions exactly how he does it? I ask you to write, it would be good. All steps in detail described.
This will allow to compare and understand.
<div style="margin:20px; margin-top:5px"><div class="smallfont" style="margin-bottom:2px">Code:</div><pre class="alt2" style="margin:0px; padding:6px; border:solid 1px; width:90%; height:80px; overflow:auto"><div dir="ltr" style="text-align:left;">//#define memicmp _memicmp
#include <ida.hpp>
#include <idp.hpp>
#include <loader.hpp>
int IDAP_init(void)
{
// У чеки тут, щоб гарантувати, що Ваш плагін використовується в
// Середу вона була написана для. Повернутися PLUGIN_SKIP якщо
// Перевіряє безуспішними, в іншому випадку повернутися PLUGIN_KEEP.
return PLUGIN_KEEP;
}
void IDAP_term(void)
{
// // Матеріал, щоб зробити при виході, як правило, ви б поставив якийсь
// Чистих вгору робочих місць тут.
return;
}
// Плагін може бути прийнятий цілий аргумент від plugins.cfg
// file. Файл. Це може бути корисно, коли ви хочете один плагін, щоб зробити
// Щось інше залежно від гарячого ключа або меню натиснута
// Обраний елемент.
void IDAP_run(int arg)
{
// "М'ясо" з вашого плагіна
msg("Hello world!"
;
return;
}
// Існує не так багато використовувати для цих, але я все одно їх встановити.
char IDAP_comment[] = "This is my test plug-in";
char IDAP_help[] = "My plugin";
// Ім'я плагін відображається в меню Правка> Plugins. Він може бути скасоване
// у файлі plugins.cfg користувача.
char IDAP_name[] = "My plugin";
// Гаряча клавіша користувач може використовувати для запуску плагіна.
char IDAP_hotkey[] = "Alt-X";
// The all-important exported PLUGIN object Всі важливі експортується об'єкт плагіна
plugin_t PLUGIN =
{
IDP_INTERFACE_VERSION, // МАР версія плагіна написаний для
0, // Flags (see below)Прапори (см нижче
IDAP_init, // Initialisation function Функція ініціалізації
IDAP_term, // Clean-up function Очищення функція
IDAP_run, // Main plug-in body Головна знімного корпусу
IDAP_comment, // Коментар - не використовується
IDAP_help, // Як і вище - не використовується
IDAP_name, // Плагін ім'я показано в
// Edit->Plugins menu Виправлення> меню Плагіни
IDAP_hotkey // Hot key to run the plug-in Гаряча клавіша для запуску плагіна в
};
</div></pre></div>
g++.exe g++.exe C:\V2\g++.exe Dll: No such file or directory.
A talking about this error compiling? I did not even imagine it?