Вызов не-DLL-функции из DLL-функции - PullRequest
0 голосов
/ 12 января 2011

Я пишу DLL:

#include "stdafx.h"
_DLLAPI int __stdcall myDLLFunc()  
{  
    return test(4);
}
int test(int arg)
{
    return arg * arg;
}

Но когда я пытаюсь скомпилировать ее в MS VC ++ Express, он говорит:

ошибка C3861: «тест»: идентификатор ненайдено

Как мне позвонить test с myDLLFunc?Я упускаю очевидное?

Заранее спасибо.

1 Ответ

4 голосов
/ 12 января 2011

Поместите вызываемую функцию перед вызывающим в вашем коде, и она должна скомпилироваться. C ++ не «смотрит вперед» для вызываемых функций, они должны быть объявлены перед любым использованием.

#include "stdafx.h"

int test(int arg)
{
    return arg * arg;
}_DLLAPI int __stdcall myDLLFunc()  

{  
    return test(4);
}

Как правило, вы должны хранить объявление функции отдельно (в файле заголовка) от определения (в файле кода), чтобы уменьшить сложность зависимости.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...