English 中文(简体)
混合运行时间是否可行?
原标题:Is mixing runtimes a viable solution?

在我公司,我们最近从VC9改为VC10。

我们移走了我们的项目,但当时,负责的人告诉我们,我们一定要把与VC9一起汇编成我们的生产机器的共同数字数字。

这些DLs利用了海关结构,其中一些包括<代码>std:vector ,std:map等。 现在,我已注意到标准集装箱的规模发生了变化:有些是大的,有些是小的。 因此,我们习俗结构的规模也发生了变化。

To solve the issues caused by the size change, a colleague of mine thought of artificially increasing the size of our structures to make it possible to compensate for future members size changes so that the structures keep the same size, whatever runtime we use, preventing stack corruption on function calls.

我个人认为,这种“团结”是可怕的,因为尽管规模大,结构的布局也是如此。 对我来说,增加所有结构的记忆足迹,以解决组织问题,似乎确实是错误的。

简而言之,我的问题是:在原型功能中使用非C类功能时,是否甚至有可能同时使用两个不同的操作时间(使用描述的trick或任何其他trick滴)。 你们是否对类似情况有好/坏的经验?

最佳回答

STL从未保证不同版本之间的双轨兼容性。 因此,如果你在界面上拥有STL课程,那么你就应当使用同一编集器和CRT的相同手法,供DL和DL本人使用。

如果你想要建造能够安全使用不同编造版本的DVDL,那么你有一些选择,例如:

  1. Expose a pure C interface (the DLL can be written in C++, but the interface must be pure C, and C++ exceptions can t cross DLL boundaries).
  2. Expose abstract interfaces at the DLL interface, like explained in this article.
  3. Use COM.
问题回答

你们必须保证,需要使用这些旧图书馆的任何东西都与这些图书馆联系在一起,并用这些图书馆的头版编制。 这样做没有其他办法,因为C++必须能够看到负责人档案,了解如何处理任何数据结构。

我从您的提问中了解到,你与一些图书馆有联系,这些图书馆反过来被汇编成册,与“五C9”运行时间相联,在这种情况下,只要图书馆不暴露其接口中的任何五C9图书馆类型,就有可能将《守则》的其余部分与“五C10”连接起来。 我可以说,这是一个充满陷阱和陷阱的地区,我一般说,你应尽可能使用同一时间。 你们所需要的最后一点是,汇编者混淆了哪一个版本的 st脚石:你重新谈论(如果你能够说服汇编者和联系人把编织成册,你可以保证方案制定者也会被混为一谈)。

它的起点是,但更容易地坚持旧的运行时间,直到它不再要求任何目标机器。

我以前实际上这样做了,以类似的方式拆除了建筑。 是的,你可以使用两种不同的管理时间,只要ABI是一样的,就应当加以罚款:这里,当结构开始改变时,你打上了隔离墙,而将C++(在ABI全身处地方)移至DLL边界上,确实是令人迷惑的。 尤其是考虑到VC10在预计C++11时发生了一些变化。 我在涉及DLL问题时使用C,完全是为了在双亲兼容性方面给我提供保障。

我很难提出一个具体案例,说明什么事情会真正吃掉,但请允许我这样说: 这预示着你不会指望你会得到的东西,这是一件真正的horn。





相关问题
Undefined reference

I m getting this linker error. I know a way around it, but it s bugging me because another part of the project s linking fine and it s designed almost identically. First, I have namespace LCD. Then I ...

C++ Equivalent of Tidy

Is there an equivalent to tidy for HTML code for C++? I have searched on the internet, but I find nothing but C++ wrappers for tidy, etc... I think the keyword tidy is what has me hung up. I am ...

Template Classes in C++ ... a required skill set?

I m new to C++ and am wondering how much time I should invest in learning how to implement template classes. Are they widely used in industry, or is this something I should move through quickly?

Print possible strings created from a Number

Given a 10 digit Telephone Number, we have to print all possible strings created from that. The mapping of the numbers is the one as exactly on a phone s keypad. i.e. for 1,0-> No Letter for 2->...

typedef ing STL wstring

Why is it when i do the following i get errors when relating to with wchar_t? namespace Foo { typedef std::wstring String; } Now i declare all my strings as Foo::String through out the program, ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

Window iconification status via Xlib

Is it possible to check with the means of pure X11/Xlib only whether the given window is iconified/minimized, and, if it is, how?

热门标签