C++ 我可以在DLL中使用前向声明吗?
我有一个主项目和一个DLL项目。主可执行文件链接到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
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的引用添加到主项目中。