C#搞客户端的朋友们有没有这么一个困惑

2016-10-16 23:09:09 +08:00
 only0jac

这几天没事写了个小工具提升效率,结果,东西写出来了,只能在自己电脑用

发给朋友,首先 xp 不能用,换成 win7

再然后,不能运行,看报错,是我有行代码调用了系统 wininet.dll 这里,用它取 cookies

为毛用它?因为 c#自带的函数取 cookies 取的不全啊我滴哥!!!

真是日狗了,写了好几天,性高彩烈地发给别人,结果不能用,现在还没解决

搞 c#客户端的朋友们你们平时这样嘛?

7877 次点击
所在节点    .NET
82 条回复
em70
2016-10-16 23:14:00 +08:00
.net 本来就不适合做桌面应用,主战场在企业级应用

做桌面程序最好的选择是 Delphi ,做出来的程序可以在 win 和 mac 桌面无需任何额外库直接运行
ipwx
2016-10-16 23:15:19 +08:00
Try Qt
em70
2016-10-16 23:18:21 +08:00
再补充一下, Delphi 之父和 C#之父是同一个人: Anders Hejlsberg
pmpio
2016-10-16 23:19:02 +08:00
.net 写出来的程序,冷启动时硬盘一阵狂转。

这么多年了,貌似很少有桌面软件用.net 来写,我就知道一个 paint.net ,性能真不敢恭维。。。
only0jac
2016-10-16 23:25:19 +08:00
@em70 不适合?上次还在 v 站一个讨论语言的帖子里看到说 winform 是 windows 下最适合的,怎么说也是微软自己的东西, delphi 在 looooong ago 之前听说快死掉了,然后就没再接触过


@ipwx qt for py ? for c++?主要是我这功能都写完了,还能再用不熟悉的东西再写一遍么,记得 qt 做界面似乎挺麻烦的


@pmpio 做桌面客户端的除了 c++不都是 c#么
Quaintjade
2016-10-16 23:33:17 +08:00
@pmpio
想当年 VB6 的程序一点就开, VB.NET 要等一下窗口才出来。话说当时 Java 写个 Hello world 窗口也要启动个半天。
pmpio
2016-10-17 00:33:57 +08:00
@Quaintjade 就是呀。按理说, VB 也算是“可管理代码”,因为它是靠解释引擎来运行的。
zhuangzhuang1988
2016-10-17 00:38:46 +08:00
这个和 c#没关系啊
你自己说了用了 wininet.dll , 肯定是你用了 win7 下才有的函数的。
wininet.dll 也是有自己的版本的。
软件要做系统兼容肯定也要先看下 wininet.dll 存在不存在对应函数的
bdbai
2016-10-17 00:38:47 +08:00
@pmpio VB6 直接编译成机器码,到 .NET 才有 managed code 一说,但也不是靠解释引擎跑的。
xbb7766
2016-10-17 00:45:58 +08:00
要保险的话把你开发环境的 wininet.dll 一起打包过去不就可以了。
有时候 DLL 版本不对的确会出问题的。
lslqtz
2016-10-17 01:16:36 +08:00
@em70 我有一个游戏的 c#源码。。
hjc4869
2016-10-17 01:18:10 +08:00
那个。。楼上几位嫌.net 程序冷启动慢的不会 ngen 一下吗…
em70
2016-10-17 01:30:42 +08:00
@only0jac 不信,你看看你平时用的 win 软件哪个是.net 做的? win32/64 平台才是桌面的王道,这个领域有 MFC,VCL,QT 三种常见框架
theoractice
2016-10-17 01:36:16 +08:00
感觉有可能是.net 版本问题。.net 4.0 之前的 HttpWebRequest 不会获取跨域的 cookie 。切到.net 4.0 再试试。
theoractice
2016-10-17 01:39:19 +08:00
@em70 win10 的 uwp 用 c#开发的很多哦
yangff
2016-10-17 01:49:09 +08:00
wininet.dll windows7 没问题吧
enenaaa
2016-10-17 01:51:11 +08:00
这不是 c#的问题啊,系统自带的动态库版本太旧,用其他语言写的本地程序也会出问题。
要么在编译时选用老一点的 windows sdk ,要么就多测试自带 dll 吧
lhw45202
2016-10-17 02:03:13 +08:00
@only0jac 不知道你是使用哪种技术做的客户端? WinForm 、 WPF 还是其它呢?如果你希望 XP 也能使用,只能选择.NET Framework 4.0 及其以下版本。看你的描述,这是动态链接库的版本问题, Windows 上常见问题,多找几台环境测试下,也有可能是某些 X 版系统本身精简的问题。
@em70 .NET 技术栈本身很适合桌面应用啊, VS 就是使用 WPF 构建的。 Anders Hejlsberg 是 C#/TypeScript 之父,称不上 Delphi 之父,人家只是用汇编写过 pascal 编译器。。。
abelyao
2016-10-17 02:06:10 +08:00
写客户端的程序就是要考虑兼容性啊… 尤其调用了非 .net 类库的时候…
这跟写前端要考虑不同浏览器是一个道理,运行环境不同都多多少少会有一些兼容问题
soratadori
2016-10-17 02:48:36 +08:00
有人知道 OSU ( http://osu.ppy.sh )不,是用 c#写的,代价就是挺简单的游戏,因为延迟的问题,结果对机器要求挺高的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/313202

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX