Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/14.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# 将windowsddk与C结合使用#_C#_Windows_Wdk - Fatal编程技术网

C# 将windowsddk与C结合使用#

C# 将windowsddk与C结合使用#,c#,windows,wdk,C#,Windows,Wdk,作为一个小的背景故事,我在一个计算机实验室工作,我们需要一个简单的方法来根据适配器的PCI总线位置禁用适配器上的某些网络协议绑定 到目前为止,我已经编写了一个C#命令行实用程序来查找它们、获取它们的总线位置、netcfginstanceid等。有一件事我还没有弄清楚如何删除这些适配器上的绑定,我可以在注册表中查看并删除它们,但它仍然会显示在适配器设置中 最后,我在Windows DDK中发现了一些整洁实用程序,尤其是BINVIEW示例程序,我想做的是在BINVIEW示例中包含NETCFGAPI,

作为一个小的背景故事,我在一个计算机实验室工作,我们需要一个简单的方法来根据适配器的PCI总线位置禁用适配器上的某些网络协议绑定

到目前为止,我已经编写了一个C#命令行实用程序来查找它们、获取它们的总线位置、netcfginstanceid等。有一件事我还没有弄清楚如何删除这些适配器上的绑定,我可以在注册表中查看并删除它们,但它仍然会显示在适配器设置中

最后,我在Windows DDK中发现了一些整洁实用程序,尤其是BINVIEW示例程序,我想做的是在BINVIEW示例中包含NETCFGAPI,并在我的C程序中使用,问题是C++文件。我曾尝试使用MIDL将它们转换为.ddl或.tlb,然后在其上使用pinvoke,但我对pinvoke知之甚少,MIDL编译器出现了诸如“MIDL:命令行错误MIDL1003:C预处理器返回的错误(4)”之类的错误

我的问题是,有没有更简单的方法?如果没有,那么最好的方法是将NetCfgApi C++文件转换成C?
<>我可以在C++中编写实用程序,但是使用C语言更舒服。

你可以尝试用C++ +CLI编译这个东西作为DLL。在“编译器”下的“项目设置”中,提到您不需要CLR,这将简化编译


DLL,您应该可以在C++项目中添加一个引用。< /P> < P>使用ATL或C++(不管理,直C++)来为C++代码创建COM对象包装器。然后使用C#中的COM互操作与您的COM对象对话。

使用visual studio 2010有没有一种简单的方法可以做到这一点?嗯。。。“容易”总是相对于其他事物而言的。创建一个项目,选择您想要的C++/CLI项目,然后将所有源添加到该项目中。此外,您还需要确保VS中的编译开关与DDK编译器中的编译开关相同。我现在正在研究这一点,谢谢,我对这方面的知识不太了解,因为我刚刚开始学习,所以我先学习msdn教程