C# 将windowsddk与C结合使用#
作为一个小的背景故事,我在一个计算机实验室工作,我们需要一个简单的方法来根据适配器的PCI总线位置禁用适配器上的某些网络协议绑定 到目前为止,我已经编写了一个C#命令行实用程序来查找它们、获取它们的总线位置、netcfginstanceid等。有一件事我还没有弄清楚如何删除这些适配器上的绑定,我可以在注册表中查看并删除它们,但它仍然会显示在适配器设置中 最后,我在Windows DDK中发现了一些整洁实用程序,尤其是BINVIEW示例程序,我想做的是在BINVIEW示例中包含NETCFGAPI,并在我的C程序中使用,问题是C++文件。我曾尝试使用MIDL将它们转换为.ddl或.tlb,然后在其上使用pinvoke,但我对pinvoke知之甚少,MIDL编译器出现了诸如“MIDL:命令行错误MIDL1003:C预处理器返回的错误(4)”之类的错误 我的问题是,有没有更简单的方法?如果没有,那么最好的方法是将NetCfgApi C++文件转换成C?C# 将windowsddk与C结合使用#,c#,windows,wdk,C#,Windows,Wdk,作为一个小的背景故事,我在一个计算机实验室工作,我们需要一个简单的方法来根据适配器的PCI总线位置禁用适配器上的某些网络协议绑定 到目前为止,我已经编写了一个C#命令行实用程序来查找它们、获取它们的总线位置、netcfginstanceid等。有一件事我还没有弄清楚如何删除这些适配器上的绑定,我可以在注册表中查看并删除它们,但它仍然会显示在适配器设置中 最后,我在Windows DDK中发现了一些整洁实用程序,尤其是BINVIEW示例程序,我想做的是在BINVIEW示例中包含NETCFGAPI,
<>我可以在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教程