c语言编译dll给易语言调用 |
您所在的位置:网站首页 › 易语言保存文件 › c语言编译dll给易语言调用 |
查阅资料发现易语言调用dll是通过stdcall的方式,所以代码如下:在这里插入代码片 __declspec(dllexport) int __stdcall MyFunction(int a, int b) { return a + b; } 把上面代码保存,例如保存为MyDll.c,再在保存的文件夹内打开cmd,输入 gcc -shared -o MyDll.dll MyDll.c 就可以在目录下找到MyDll.dll 然后就是易语言的调用了,易语言调用代码如下: 函数后面加了@8,是因为函数有两个参数,两个参数分别占用了4个字节(int) 剩下的就是在易语言中正常用就可以了 说明: 其中,__declspec(dllexport) 是一个用于在 Windows 平台上声明函数、变量或对象在动态链接库(DLL)中可被导出的扩展关键字 具体含义如下: __declspec(dllexport) 告诉编译器将修饰的函数、变量或对象导出为 DLL 的公共符号,使其可供其他程序或模块使用。 导出的函数、变量或对象可以被其他程序或模块引用和调用,而不仅限于定义它们的 DLL 内部使用。 这个关键字通常用于在 DLL 中定义公共接口,以便外部程序可以通过导入该 DLL 并使用其中的函数、变量或对象。 在使用 __declspec(dllexport) 修饰函数时,需要在编译该函数所在的源文件时指定编译器选项,以确保函数正确地被导出到生成的 DLL 文件中。 在调用 DLL 中导出的函数时,需要在使用该函数的源文件中包含函数的声明,并链接到相应的 DLL。 总结而言,__declspec(dllexport) 是用于在 Windows 平台上将函数、变量或对象导出为 DLL 的关键字,使其能够在其他程序或模块中被使用和调用 __stdcall 是一种调用约定(calling convention),用于指定函数在调用时如何在堆栈上传递参数和返回值。 __stdcall 是一种标准的调用约定,通常用于 Win32 API 函数和许多 Windows 系统函数。 在使用 __stdcall 调用约定的函数中,参数按照从右到左的顺序依次压入堆栈,由调用方清理堆栈。 返回值通过 EAX 寄存器返回,而不是通过堆栈传递。 __stdcall 调用约定在函数调用时提供了一致性,确保调用方和被调用方在参数传递和堆栈清理方面的一致性。 如果您在函数声明或定义中使用 __stdcall,则需要在调用该函数的地方也使用相同的调用约定。 在使用 Visual Studio 编译器时,__stdcall 通常可以简写为 stdcall,例如 int stdcall myFunction(int a, int b)。 |
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |