【发布时间】:2013-10-18 13:04:35
【问题描述】:
我的 C# 代码有问题(我使用的是 VS2010),我尝试使用 wininet.dll 来使用它的 FTP 功能。 DLL 不是 .NET 组件,所以我无法添加作为参考,而是使用我在互联网上看到的这段代码,代码如下:
[System.Runtime.InteropServices.DllImport("wininet.dll", CharSet = System.Runtime.InteropServices.CharSet.Ansi, SetLastError = true)]
extern public static long InternetOpen(
string lpszAgent,
long dwAccessType,
string lpszProxyName,
string lpszProxyBypass,
long dwFlags);
我在保存和构建项目时没有遇到任何错误,但是当我尝试调试时收到错误,部分错误显示“Culture=neutral, PublicKeyToken=null”,因为方法“InternetOpen”没有实现(没有 RVA)。”
我认为错误是因为它看不到实际的wininet.dll文件,我尝试将文件放在项目文件所在的文件夹中,但没有解决问题。希望你们能帮助我。提前致谢!
【问题讨论】:
-
你从哪里复制代码?他们声称它有效吗?您收到的完整例外情况是什么?
-
我忘了复制链接,但我在 StackOverFlow 中也看到了,发布问题的人说他的代码正在运行(他有一个不同的问题,但他说他的代码正在运行)
-
它永远无法工作,声明完全错误。该错误消息不太可能出现,它表示缺少 extern 关键字。听起来您正试图在根本不支持 pinvoke 的平台上执行此操作。 .NET 已经很好地支持了 FTP,不要自己动手。
-
Hans,谢谢,我认为这是可能的,但是如果我想在我的 4.0 项目中使用 dll 怎么办?如果 wininet 是非 .NET 组件,有什么办法吗?
标签: .net visual-studio-2010 c#-4.0 wininet