从stdcall dll函数返回结构是否安全?

| 我正在设计一个至少在mingw和msvc ++之间必须与二进制兼容的API。到目前为止,我只限于使用函数,该函数接受并返回具有统一成员的原始数据类型或指向POD结构的指针(即,这些成员都是相同的类型,这将减少填充不兼容的风险)。 不过,在某些时候按值返回结构会很方便,这样被调用方就不必保留临时副本。因此问题是:当被调用方是由与调用方不同的编译器编译时,按值将结构传递到stdcall函数/从stdcall函数传递结构是否安全?这对于较低版本的msvc和mingw仍然有效吗?我会更确信这一点,但是我发现这个主题使用cdecl调用约定在这种确切情况下讨论了一个问题,显然只有在mingw 4.6中才解决。     
已邀请:
        像这样使用struct并不是一个好的选择。您需要使用 #pragma包 请参考http://publib.boulder.ibm.com/infocenter/macxhelp/v6v81/index.jsp?topic=%2Fcom.ibm.vacpp6m.doc%2Fcompiler%2Fref%2Frnpgpack.htm http://msdn.microsoft.com/zh-CN/library/2e70t5y1%28v=vs.80%29.aspx 并确保mingw遵守实用说明。     
        我不知道mingw,但是如果它可以调用Win32 API,那么它可以以与stdcall兼容的方式传递结构-因为许多Win32 API都是stdcall并采用结构。 马丁     

要回复问题请先登录注册