C++ 我可以在DLL中使用前向声明吗?

C++ 我可以在DLL中使用前向声明吗?,c++,function,dll,C++,Function,Dll,我有一个主项目和一个DLL项目。主可执行文件链接到DLL。 在主项目中,我有一个功能: int func(char *str) { ..... } 在DLL项目中,我想使用此函数。我可以向前声明此函数并使用它吗?比如: int func(char *str); int dllFunc() { ... status = func(str); ... } 不能使用转发声明转发声明与此不同。如果要调用dll中的某个方法,必须使用或 不管怎样,看起来你们想从某个DL

我有一个主项目和一个DLL项目。主可执行文件链接到DLL。 在主项目中,我有一个功能:

int func(char *str)
{
    .....
}
在DLL项目中,我想使用此函数。我可以向前声明此函数并使用它吗?比如:

int func(char *str);

int dllFunc()
{
    ...
    status = func(str);
    ...
}

不能使用转发声明转发声明与此不同。如果要调用dll中的某个方法,必须使用或

不管怎样,看起来你们想从某个DLL调用放在你们可执行文件中的方法,据我所知,这是可以做到的。而且这没有多大意义,因为DLL被设计为在应用程序之间共享,而不是在主可执行文件之间共享。

一种(相当常见的)方法是提供来自应用程序的回调,即

在DLL中:

typedef void (*callback)();

callback my_callback;

void dll_register_callback(callback app_callback) { my_callback = app_callback; }

void do_things() { my_callback(); }
在应用中:

void cb() {}

dll_register_callback(cb);

您是将dll的引用添加到主项目中还是相反?我正在将dll的引用添加到主项目中。