Я создал статическую библиотеку (.lib).Исходный код выглядит следующим образом:
Исходный файл:
void foo(void)
{
MyType var;
var.val1 = 40;
var.val2 = 30;
use(var);
}
Файл заголовка (libheader.h):
/* Exported API */
void foo(void);
Основной проект:
#include "libheader.h" // XX.lib already imported to the main project
int main()
{
// some code
foo(); // Breakpoint here and step in
// some code
return 0;
}
В основном проекте я импортировал библиотеку, включил «libheader.h» и позвонил foo()
.Когда я отлаживаю свой код и устанавливаю точку останова на foo()
, я нажимаю «Вступить», код ассемблера статической библиотеки отображается в консоли отладки, и я вижу содержимое локальных переменных, например var
(в примере).Я даже вижу в стеке вызовов, что use(var)
был вызван.
Мой вопрос: эта библиотека должна быть защищена перед доставкой клиенту.Это нормально, что содержимое (переменных, имен функций, вызовов ...) файла .lib можно увидеть во время отладки?Есть ли способ зашифровать / защитить его?