我有一个主项目和一个DLL项目。主要的可执行文件链接到DLL。 在主体工程我有一个函数:我可以在DLL中使用前向声明吗?
int func(char *str)
{
.....
}
在DLL项目,我想使用此功能。我可以转发声明此功能并使用它吗?像:
int func(char *str);
int dllFunc()
{
...
status = func(str);
...
}
我有一个主项目和一个DLL项目。主要的可执行文件链接到DLL。 在主体工程我有一个函数:我可以在DLL中使用前向声明吗?
int func(char *str)
{
.....
}
在DLL项目,我想使用此功能。我可以转发声明此功能并使用它吗?像:
int func(char *str);
int dllFunc()
{
...
status = func(str);
...
}
一(很常见),这样做是为了提供从应用回调的方式,即
在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中调用某种方法,你必须使用GetProcAdress或Implicit linking。
无论如何,看起来你想从某个DLL中调用放置在你的可执行文件中的方法,据我所知可以完成它。它没有多大意义,因为DLL被设计为在应用程序之间共享而不是主要可执行程序。
你添加参考dll进入主项目还是相反? – Milee 2012-04-26 05:28:44
我将dll的引用添加到主项目中。 – lalli 2012-04-26 05:32:05