C# 如何在.net项目中使用非托管dll?

C# 如何在.net项目中使用非托管dll?,c#,asp.net,unmanaged,dllimport,C#,Asp.net,Unmanaged,Dllimport,我正在做一个ASP.NET项目,它可以生成屏幕截图。我想在我的项目中使用gdi32.dll。如何导入它?您需要使用。如果dll是系统dll,您必须按如下方式以编程方式添加: [DllImport(“gdi32.dll”,CharSet=CharSet.Ansi, BestFitMapping=true,ThrowOnUnmappableChar=true)] 并确保项目(解决方案平台)设置为32或x86,而不是任何CPU。你可以通过一个简单的例子了解更多。高兴的 编码根据需要,您可以使用C++/

我正在做一个ASP.NET项目,它可以生成屏幕截图。我想在我的项目中使用gdi32.dll。如何导入它?

您需要使用。

如果dll是系统dll,您必须按如下方式以编程方式添加:

[DllImport(“gdi32.dll”,CharSet=CharSet.Ansi,
BestFitMapping=true,ThrowOnUnmappableChar=true)]

并确保项目(解决方案平台)设置为32x86,而不是任何CPU。你可以通过一个简单的例子了解更多。高兴的
编码

根据需要,您可以使用C++/CLI包装器。它使某些事情变得更容易。

此外,pinvoke.net是一个很好的方法签名源。@PVitt-仅当您希望调用窗口库时。我认为,除了P/Invoke之外,还有一种更简单的方法供作者使用。当然,这取决于作者截图的内容。@Ramhound-我试过webbrowser.drawtobitmap(),当页面上有silverlight/flash并且经常生成空白图像时,它就不起作用了。这就是为什么我尝试使用GDI寻找解决方案。我知道我的问题听起来很奇怪,但您提到了您的项目生成的屏幕截图。您计划在客户端还是服务器端使用非托管dll?我正在尝试在服务器端生成它。我正在努力解决这个问题,因为我找不到一个完整的解决方案,可以不考虑滚动条、silverlight/flash控件和偶尔的空白图像而捕捉完整/部分页面。