Вызов внешней функции из dll, объявленной в (.exe), - ошибка LNK2019: неразрешенный внешний символC++

Программы на C++. Форум разработчиков
Ответить Пред. темаСлед. тема
Anonymous
 Вызов внешней функции из dll, объявленной в (.exe), - ошибка LNK2019: неразрешенный внешний символ

Сообщение Anonymous »

Это мой первый вопрос, всем привет!
У меня проблема с внешней функцией "extern void TestExtern();" он определен как extern в файле .h моей общей библиотеки (.dll) и вызывается из cpp. Эта функция объявлена ​​(реализована) в файле cpp моего проекта приложения (.exe).
Это результат, когда Core Show Progress имеет значение /VERBOSE

Код: Выделить всё

1>Microsoft (R) Windows (R) Resource Compiler Version 10.0.10011.16384
1>
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>
1>
1>Creating C:\Users\danij\AppData\Local\Temp\lnk{13F88671-C637-469A-93A9-78E4106F389E}.tmp
1>
1>Using codepage 1252 as default
1>
1>C:\Users\danij\AppData\Local\Temp\lnk{2B156ACF-B9B2-4480-81AD-3C450DB4EB02}.tmp.
1>Writing 24:2, lang:0x409, size 381
1>Invoking cvtres.exe:
1> /machine:amd64
1> /verbose
1> /out:"C:\Users\danij\AppData\Local\Temp\lnk{97C07E2B-0967-433E-A12F-000334BDC2DB}.tmp"
1> /readonly
1> "C:\Users\danij\AppData\Local\Temp\lnk{13F88671-C637-469A-93A9-78E4106F389E}.tmp"
1>Microsoft (R) Windows Resource To Object Converter Version 14.39.33523.0
1>Copyright (C) Microsoft Corporation.  All rights reserved.
1>
1>adding resource. type:MANIFEST, name:2, language:0x0409, flags:0x30, size:381
1>Core.obj : error LNK2019: unresolved external symbol "void __cdecl TestExtern(void)" (?TestExtern@@YAXXZ) referenced in function "int __cdecl TestingRestructure(void)" (?TestingRestructure@@YAHXZ)
1>Unused libraries:
1>  Vendor\SDL3_Image\lib\x86_64\SDL3_Image.lib
1>  Vendor\SDL3_Mixer\lib\x86_64\SDL3_Mixer.lib
1>  Vendor\SDL3_TTF\lib\x86_64\SDL3_TTF.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\gdi32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\winspool.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\comdlg32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\advapi32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\shell32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\ole32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\oleaut32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\uuid.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbc32.lib
1>  C:\Program Files (x86)\Windows Kits\10\lib\10.0.19041.0\um\x64\odbccp32.lib
1>  C:\Program Files\Microsoft Visual Studio\2022\Community\VC\Tools\MSVC\14.39.33519\lib\x64\OLDNAMES.lib
1>..\Binaries\windows-x86_64\Debug\Core\Core.dll : fatal error LNK1120: 1 unresolved externals
1>Done building project "Core.vcxproj" -- FAILED.
2>------ Build started: Project: AppTest, Configuration: Debug x64 ------
2>AppTest.cpp
2>AppTest.vcxproj -> D:\GithubProjects\janjitest\janji\Binaries\windows-x86_64\Debug\AppTest\AppTest.exe
========== Build: 1 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========
========== Build completed at 12:55 PM and took 00.816 seconds ==========
Вот структура моего решения:

Код: Выделить всё

  Solution:
Core:
Core.h
Core.cpp
AppTest:
AppTest.h
AppTest.cpp
Core.h

Код: Выделить всё

#pragma once

#include "Defines.h"

COREAPI int TestingRestructure();

extern void TestExtern();
Core.cpp

Код: Выделить всё

#include "Core.h"
#include "Defines.h"

int TestingRestructure()
{
TestExtern();

return 0;
}
AppTest.h

Код: Выделить всё

#pragma once
AppTest.cpp

Код: Выделить всё

#include "AppTest.h"

#include 

int main(void)
{
return TestingRestructure();
}

void TestExtern()
{

}
Моя идея заключается в том, что я хочу вызвать функцию из dll, которая реализована в exe.
Что я здесь делаю не так?
Спасибо, что уделили время,
Дэниел.
Я пытался вызвать внешнюю функцию, определенную в .h-файле моей dll, и вызвать ее из cpp но реализовать его внутри файла exe cpp. Я получил ошибку LNK2019: неразрешенный внешний символ и ожидал, что функция связана правильно, поскольку она определена как extern.

Подробнее здесь: https://stackoverflow.com/questions/784 ... unresolved
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C++»