Odoshi 发表于 2012-8-26 19:43:46

ObjectARX C++/CLI

大家好,
我将在这里开辟新的天地。我一直在用各种API编写AutoCAD,但ObjectARX是最少的。
但是现在我需要使用C++/CLI来使用一些传统的C++代码。
为了简单起见(是的,没错),我从AutoCAD 2013/VS 2010开始。原来VS 2010没有智能感知的C++/CLI -大有帮助。
但在此之前,我将使用ObjectARX 2013向导,并在最后一个屏幕上检查“NET混合托管代码支持”选项。
一旦创建了项目,我就迷路了。我放入了一段可以在C++ ObjectARX项目中编译的代码,但是在我的新项目中却出现了错误。
语法不同,预期的类型也不同...
有没有一些例子——马也简单到画一条线,这样我就可以看到我需要什么参考资料和语法的kickstart?
谢谢!
**** Hidden Message *****

owenwengerd 发表于 2012-8-26 21:45:24


为什么遗留C++代码需要C++ /CLI?您不应该使用C++ /CLI,除非您绝对必须在同一个模块中同时使用遗留C++代码和遗留托管代码。这是可能的,但不适合胆小的人,也不适合讨论论坛。

Odoshi 发表于 2012-8-26 22:04:44

所以,用C++/CLI的要点就是混合。NET引用和C++?从. NET GUI调用ObjectARX代码没有好处吗?
这是我们的另一个目的,不使用MFC,而是使用。NET GUI,并从ObjectARX C++/CLI dll中调用绘图函数。我知道我们可以P/Invoke,但我认为引用C++/CLI会更容易。是这样吗?
谢谢!

owenwengerd 发表于 2012-8-26 22:40:44

在某些情况下,巨大的前期投资是值得的,但在一般情况下,使用C++/CLI肯定不会比使用P/Invoke更容易。你看不到任何C++/CLI ObjectARX示例的原因是因为它很难做到正确,尤其是在处理不同版本的框架和不同版本的AutoCAD中使用的不同构建平台时。如果您可以使用P/Invoke,就应该使用它。

Odoshi 发表于 2012-8-27 00:17:02

我经常使用C++/CLI。为自己准备一份Visual Assist X for intellisence

sdphg 发表于 2012-8-27 08:39:43

谢谢大家的洞察力!

LE3 发表于 2012-8-29 05:32:24

大多数情况下,你可以把C++/CLI项目当作一个纯粹的C++项目,除非你想包装一些东西。所以,我的建议是:把CLI代码和c++分开。要做到这一点,您只需编写c++代码,当您希望将c++类中的函数公开给。net类,编写一个“代理类”,这个代理类是一个托管类(使用__gc或gcnew关键字等),它包装了非托管函数。
即使彻底,我认为owenwengerd是对的,只有在必要时才使用c++/CLI。因为你仍然要面对许多困难,比如从托管类型转换到非托管类型,反之亦然,等等。
祝你好运。

Odoshi 发表于 2012-9-2 21:17:44

不要在arx或c++上工作了——在我目前的工作中,我们使用C#,但在arx上花费的部分很有趣,我从大师们那里学到了东西——尤其是欧文。
下面是我为以前的工作做的一个自定义对象的包装器的图像——抱歉没有可用的代码——是的,一点也不容易。
玩得开心!

LE3 发表于 2012-9-4 12:45:22

如果你下载的话,确保你打算购买。
当试用期结束时,它会变得很孤独。

owenwengerd 发表于 2012-9-18 18:48:34

刚刚得到审判。好东西!
页: [1]
查看完整版本: ObjectARX C++/CLI