Они - искаженные (или «украшенные») имена функций C ++. C ++ допускает перегрузку функций - несколько функций с одним и тем же именем, но с разными сигнатурами параметров - и поэтому ему необходимо кодировать параметры и т. Д. В имя функции, чтобы различать множественные перегрузки во время соединения. Скорее всего, ваша библиотека БД была собрана как C и не будет иметь оформленных имен.
Попробуйте включить db.h в extern "C"
extern "C"
{
#include <db/db.h>
}
чтобы указать компилятору обрабатывать API как функции C, а не C ++.
(Похоже, там тоже есть опечатка: database_insert_bluk
не _bulk
.)
Кроме того, похоже, что Berkeley DB поставляет интерфейс C ++ #include <db/db_cxx.h>
, который вы могли бы использовать вместо этого, хотя, если вы переносите код, может быть проще придерживаться интерфейса C. Разница, вероятно, в том, что портируемый вами код Linux был скомпилирован как C, тогда как здесь вы компилируете его как C ++.
Из другого комментария, который вы разместили : если ваша проблема заключается в том, что вы вообще не ссылаетесь в Berkeley DB, тогда вам нужно перейти в настройки проекта (щелкните правой кнопкой мыши на имя проекта), вкладка C ++ link, а затем добавьте файл .lib в список библиотек для ссылки в ваш проект. Вам может потребоваться указать путь, чтобы найти это тоже, и вы должны сделать это для режимов отладки и выпуска (выпадающий в верхней части настроек).