我应该把DLL的声明放在哪里+;如何在另一种语言中使用[C]
1) 假设我在c中创建了一个名为MyDLL的DLL。 我有两个文件,一个是MyDLL.c,第二个是MyDLL.h,然后我编译代码 并获取MyDLL.a和MyDLL.dll。 我知道如何在一个新的C项目中使用这个dll,我只需要包含MyDLL.h并给出 链接器我的MyDLL.a的路径 现在让我们假设我没有MyDLL.h,我需要调用我应该把DLL的声明放在哪里+;如何在另一种语言中使用[C],c,dll,C,Dll,1) 假设我在c中创建了一个名为MyDLL的DLL。 我有两个文件,一个是MyDLL.c,第二个是MyDLL.h,然后我编译代码 并获取MyDLL.a和MyDLL.dll。 我知道如何在一个新的C项目中使用这个dll,我只需要包含MyDLL.h并给出 链接器我的MyDLL.a的路径 现在让我们假设我没有MyDLL.h,我需要调用LoadLibrary(),但是所有函数的原型以及MyDLL.h中的所有typdefs宏和结构,那么程序如何知道所有这些声明呢? 或者说我想在C#项目或JAVA项目中使用
LoadLibrary()
,但是所有函数的原型以及MyDLL.h中的所有typdefs宏和结构,那么程序如何知道所有这些声明呢?
或者说我想在C#项目或JAVA项目中使用DLL?我不能包括MyDLL.h
2) 如果我在dll中有一个函数,它将指针作为参数(void*
,int*
等),如果我没有C、JAVA或任何其他语言中的指针,如何将指针作为参数发送?
或者如果函数获取参数的结构?甚至是函数的指针?您提到的大多数语言都定义了自己的函数,这是一种调用用其他语言编写的代码的机制。调用了FFI for Java和for C#-。感谢您的快速回答,但我发现他们需要在代码中编写函数原型,但当我将dll发送给不知道函数原型的人时,您应该提供函数签名作为文档的一部分。或者,他们可以使用dumpbin或Dependency Walker等实用程序查看函数。什么是.lib文件和.def文件?