Sooooo我正在编写脚本解释器。基本上,我想存储在一个DLL一些类和函数,但我想的DLL来寻找那些被链接到它,就像节目中的函数,使用gcc编译DLL
program dll
----------------------------------------------------
send code to dll-----> parse code
|
v
code contains a function,
that isn't contained in the DLL
|
list of functions in <------/
program
|
v
corresponding function,
user-defined in the
program--process the
passed argument here
|
\--------------> return value sent back
to the parsing function
基本上,我是想知道,我怎么编译一个使用gcc的DLL?那么,我正在使用gcc的windows端口。一旦我编译了一个包含我的类和函数的.dll,我该如何链接到我的程序?我如何使用DLL中的类和函数? DLL可以调用链接到它的程序的函数吗?如果我创建一个类{...}对象;在DLL中,然后当程序加载DLL时,程序是否可以使用对象?在此之前感谢,我真的需要知道如何在C++中使用DLL,然后才能继续此项目。
“你可以添加更多的细节,你为什么要DLL调用主程序中的函数吗?”
我以为这个图解释了它......使用DLL的程序将一段代码传递给解析代码的DLL,并且如果在所述代码中找到函数调用,那么DLL中的相应函数是调用...例如,如果我传递“a = sqrt(100)”,那么DLL解析器函数将查找对sqrt()的函数调用,并且在该DLL内将会有一个相应的sqrt()函数,传递给它的参数的根,然后它将从该函数获取返回值并将其放入变量a中,就像其他程序一样,但是如果没有在sqrt()函数中找到相应的处理函数该DLL(将有一个本地支持的函数列表),那么它会调用一个类似的函数,它将驻留在使用该DLL的程序中,以查看是否有该名称的用户定义函数。
因此,假设您将DLL加载到程序中,让您的程序能够解释此特定语言的脚本,程序可以调用DLL来处理单行代码或将脚本的文件名处理为...但是如果你想添加一个命令到适合程序目的的脚本中,你可以说在DLL中设置一个布尔值,告诉它你正在为它的语言添加函数,然后在你的代码中创建一个函数,你要添加的函数(DLL会用它想要的函数的名字来调用它,如果这个函数是你的代码中包含的用户定义的函数的话,函数会调用相应的函数,并使用由DLL传递给它的参数,将用户定义函数的返回值返回给DLL,如果它不存在,它将返回错误代码或NULL或s omething)。我开始看到,我必须找到解决这个另一种方式让函数调用走一条路只有
哇,我甚至不知道有一个海湾合作委员会的胜利端口。我会尝试使用gcc与windows作为平台目标。 – cbrulak 2009-02-03 00:22:03
你应该指定你正在使用的确切编译器。该编译器的文档可能会告诉你如何制作DLL。 – SoapBox 2009-02-03 00:23:01
它被称为mingw或mingw32我猜...我会尝试找到gcc文档,但我对C和C++相当陌生,所以它的某些方面仍然很难理解 – user61721 2009-02-03 00:35:36