Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/273.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 一组导入函数的DllImport_C# - Fatal编程技术网

C# 一组导入函数的DllImport

C# 一组导入函数的DllImport,c#,C#,有没有办法为一组外部函数指定相同的DllImport属性,类似于extern“C”{…}?我不想对每个函数声明重复它:-)不,属性必须在每个函数上 否。避免这种情况的唯一方法是在C++/CLI中编写ref类包装器。它允许您直接包含C头文件。然后,您的C#项目可以简单地将引用添加到C++/CLI生成的程序集。这避免了很多事故,现在当您声明错误时,会收到编译器错误消息,但如果您的唯一目标是剪切代码行,则与pinvoke声明相比,这并不完全具有竞争力。答案很好,Hans。有几次这样做可以节省PInvo

有没有办法为一组外部函数指定相同的DllImport属性,类似于
extern“C”{…}
?我不想对每个函数声明重复它:-)

不,属性必须在每个函数上

否。避免这种情况的唯一方法是在C++/CLI中编写ref类包装器。它允许您直接包含C头文件。然后,您的C#项目可以简单地将引用添加到C++/CLI生成的程序集。这避免了很多事故,现在当您声明错误时,会收到编译器错误消息,但如果您的唯一目标是剪切代码行,则与pinvoke声明相比,这并不完全具有竞争力。

答案很好,Hans。有几次这样做可以节省PInvoke签名的大量尝试/错误。