使用Visual Studio 2005为Windows NT 4.0构建?

我尝试迁移的MFC应用程序使用 afxext.h ,这会导致 _AFXDLL 设置,如果设置 / MT 代码>:

请为/ _AFXDLL版本使用/ MD开关

迄今为止,我的研究表明,使用Visual Studio(本例中为C ++)2005年在Windows NT 4.0上构建应用程序是不可能的。

这是真的吗?有没有可用的解决方法?

0
为了记录,ArcGIS 10.0随附Python 2.6.5
额外 作者 akdom,
有人请保护这一点。
额外 作者 Jonathan Mee,
@Mike,我有一个自定义帖子类型的'资源',这些帖子有几个不同的类别,比如'forms','mp3'等。现在这个资源区域在这个站点下是另一个部分(谁是一个页面,这些自定义帖子)称为Explore。我想要实现的是domain.com/Explore/Resources/Resource-Category/Resource-Name或domian.com/explore/resources/forms/production-form-1。我的当前重写规则(在register_post_type())是'rewrite'=> array('slug'=>“explore/resources”,'with_front'=> false)。感谢您的快速响应!
额外 作者 Tom,
@Mike,我刚刚在邮件列表中看到了有关分类法,自定义帖子和重写的通信以及关于新控制器的trac建议,我想我的问题与所描述的类似,所以我只能等待一些更新,更适合的实施。
额外 作者 Tom,
我有点用这种方法打了一堵墙,还有一些东西与重写规则完全搞砸了(并没有帮助取消,冲洗也没有删除它们),所以我过渡到了另一个,但我会尝试重新创建它,打包它(包含所需的模板文件)并通过邮件列表电子邮件地址发送给您。谢谢。
额外 作者 Tom,
@Amit:目前还不清楚你在做什么。我不确定当你说''动态'以某种方式获取帖子的分类名称'时你的意思“。你能否更深入地解释一下?另外,您可以告诉我们您的自定义帖子类型是什么,并提供您希望系统生成的几个示例网址?
额外 作者 MikeSchinkel,
我将不得不对此进行一些研究,假设有人在我做之前没有正确回答它。
额外 作者 MikeSchinkel,
你有可能以某种方式使你的WordPress数据库可用,以便我可以加载它,而不必重新创建你的数据,以测试它?你可以在gist.github.com上将SQL转储文件作为私人要求发布...
额外 作者 MikeSchinkel,

7 答案

Nope,每个ArcGIS版本的一个Python版本。其原因很简单:大部分的魔术都是在C扩展(arcgisscripting)中进行的。 C API从一个版本变为另一个版本,并且该DLL在其他版本的Python中不会很好。

但是,每次主Python.org站点发布安全修复程序(2.6.X)时,它们都是二进制兼容的并且可以安装。

16
额外

Nope. An Esri staff member says no in a forum reponse post:

ArcGIS 10最终版将附带一个且只有一个版本的python。在   预发布我们有2.6.2。最有可能的是我们将有10次决赛   2.6.5。话虽如此,ArcGIS 10将与任何2.6版本的python一起工作。因此,从现在起6个月,我们已经发布了Python 2.6.6,但是   ArcGIS仅使用2.6.5,您可以安全地安装Python 2.6.6和   ArcGIS可以正常工作。请注意,此兼容性仅适用于a   Python的主要版本。换句话说,ArcGIS 10将无法​​使用   Python 2.7或Python 3.1或任何其他主要版本的Python。只要   支持Python 2.6。

10
额外
很好,值得一试。
额外 作者 ESV,
请记住,该职位是2岁。您知道2年前和ArcGIS 10.0中的情况未来可能未必适用于ArcGIS 10.x。
额外 作者 Stephen Quan,
ArcGIS 10.2.2仍然是Python 2.7.x.然而,新的ArcGIS Pro桌面应用程序(将于2014年中发布)使用Python 3.4 - 并使用与Desktop 10x相同的GP环境(工具箱)。因此,ArcGIS脚本编写人员应该能够编写兼容2.7/3.4的代码 ​​- 顺便说一句,这并不困难。
额外 作者 Curtis Price,

I think it is important to make this Q&A cover not just ArcGIS Desktop 10.0, Python 2.7 and Python 3.1, but also to incorporate the latest versions of desktop products from the ArcGIS platform and the Python programming language.

对于来自ArcGIS平台的(当前)最新桌面产品中的Python支持,我认为您应该考虑:

如果您确实需要在ArcGIS Pro之外使用Python,请下载   从我的Esri的Python设置。此安装将安装Python   3.4.1,ArcGIS Pro所需的所有第三方需求以及用于标识所有ArcGIS Pro文件夹的ArcGISPro.pth文件   运行ArcPy所需的。

ArcGIS for Desktop地理处理工具需要Python 2.7.x和   数字Python 1.7.x被安装。如果ArcGIS for Desktop设置   没有找到Python 2.7.x或Numerical Python(NumPy)   1.7.x安装在目标计算机上,Python 2.7.8和Numerical Python 1.7.1将在完整安装期间安装   ArcGIS 10.3.x。

3
额外

我不知道arc10,但是在所有的ArcGIS 9版本中,您都可以使用几个简单的步骤。这是不支持的配置,请参阅 ESRI知识库文章31912 。如果这适用于ArcGIS 10,请回报。

1
额外
这仅适用于同一major.minor版本的发布(即在ArcGIS 10中从2.6.3到2.6.5)。在ArcGIS中,这绝对不能可靠地从2.5.X转换到2.6.X,因为Python版本的API之间存在一些二进制不兼容问题。如果它不工作,你就是幸运的。长期运行的任何事情都可能随着时间的推移而发生微妙而危险的数据损坏。
额外 作者 Paul,
我欢迎不相容的示例/示例和/或数据损坏(老实说,我真的这么做)。我已经升级了几年的主要Python版本,但尚未遇到任何重大问题。另一方面,我已经看到一些漂亮的 arcgis的重大数据损坏本身。所以,这是我愿意承担的风险,但要谨慎小心并尽职尽责。
额外 作者 Greg,

解决方法是修复多线程DLL。 简单说明。简短的摘要:

运输8.0 C运行时库DLL(MSVCR80.DLL)不支持   NT 4.0 SP6出于一个原因,只有一个原因:在微软的人   给 GetLongPathNameW 添加了一个不存在的函数调用   NT 4.0上的kernel32.dll。     

CRTLIB.C在577行上,有一个对 GetLongPathNameW 的调用。只需将它替换为: ret = 0;   仅在NT 4.0上使用此版本的MSVCR80.DLL。

一旦你有这些工作,提出一个更通用的解决方案应该是微不足道的。

0
额外

为了摆脱_AFXDLL错误,你有没有尝试改变设置以使用MFC作为静态库而不是DLL?这与您将运行时库更改为静态而不是DLL时所做的相似。

0
额外

虽然我对afxext.h不熟悉,但我想知道它是什么使它与Windows NT4不兼容....

但是,要回答原始问题: “迄今为止,我的研究表明,使用Visual Studio(本例中为C ++)2005年无法在Windows NT 4.0上构建一个应用程序。”

答案应该是肯定的,特别是如果应用程序最初是在NT4上编写或运行的!除了afxext.h之外,这应该是一个简单的YES。

另一件我觉得麻烦的事情是人们放弃新台币的松散性。大多数人认为'NT'是Windows NT4,但它仍然不明确,因为'大多数人'不等于'所有人'。

实际上,'NT'这个词与NT系列相同。 NT系列是NT3,NT4,NT5(2000,XP,2003)和NT6(Vista)。

Win32 is a subsystem which you target your C/C++ code too. So I see no reason why one should not be able target this NT4 platform & subsystem or, if this is a platform porting excercise, remove the MFC dependencies that VC is possibly imposing.

将afxext.h添加到混音中,这听起来像是子系统兼容性问题。它是我Google研究中MFC的一部分。 afxext.h似乎是MFC(Microsoft基础类)扩展。

你可以删除你对MFC的依赖吗?这是什么类型的应用程序? (CLR,服务,GUI界面?)您能否将项目转换为VC 8.0中的非托管C ++项目?

希望这有助于你。

0
额外