很抱歉,如果这个问题很基本,我是.dll-s的新手。基本上,我想让我的函数能够访问与最初在定义为.dll的主程序中所做的相同的全局变量]
示例:我有一个ListView对象,我将从函数内向其中打印消息
void example(){ //Display is my listview Display->Items->Add("Hello world"); }
在此示例中,Display是一个TListView对象,该对象在我的main.cpp中被初始化,从中可以定义VCL应用程序表单的行为。该显示对象是主cpp中的全局变量,因此,当我剪切example()并将其粘贴到新的dll中时,它会中断,因为在dll范围内不存在显示,所以它会中断。
我的想法是声明函数原型void example();在main.h和SOMEHOW中将主体写入我的dll中,但是当我在dll中包含时,编译器将发出尖叫声,它使我想做什么...]]
我有什么选择?
我使用的是c ++ Builder,但我认为相同的逻辑问题将适用于任何IDE
很抱歉,如果这个问题很基本,我是.dll-s的新手。基本上,我想让我的函数能够访问它最初在while ...
您正在解决所有这些错误。 DLL无法访问它外部的变量,例如在主EXE中,除非外部代码为它们提供了DLL指针/引用。
更好的设计是完全不让DLL直接访问变量。在您的示例中,您应该使EXE传递指向DLL的callback function