On Monday, 27 April 2015 at 16:24:16 UTC, Benjamin Thaut wrote:
Am 27.04.2015 um 17:16 schrieb extrawurst:
On Monday, 27 April 2015 at 13:14:21 UTC, Benjamin Thaut wrote:
On Monday, 27 April 2015 at 13:08:33 UTC, extrawurst wrote:

Don't ask me about the compiler, like stated above I have no control
over the binaries, it is proprietary.

Thats bad to start with.


the C++ class basically is:

```
class S
{
union SteamID_t
   {
       struct SteamIDComponent_t
       {
           uint32                m_unAccountID : 32;
           unsigned int        m_unAccountInstance : 20;
           unsigned int        m_EAccountType : 4;
           EUniverse            m_EUniverse : 8;
       } m_comp;

       uint64 m_unAll64Bits;
   } m_steamid;
}
```

Where is the fuction declaratiosn for bar? If bar is not virtual you can not use a extern(C++) Interface. If bar is non-virtual you have to
use a extern(C++) class.

of course it is all virtual. it is a c++-interface. and everything works
fine under osx, that would not be the case otherwise, right ?

It depends on the compiler, I don't know the vtbl layout on OSX. Does the class have a virtual destructor? If you would post a bit more of S declaration I wouldn't have to guess into the blue. Not knowing the compiler your third party library was compiled with doesn't really help either.

Kind Regards
Benjamin

here is the shortened version of the returned class CSteamID:
https://gist.github.com/Extrawurst/936f56ceaa87cf287257

this is the shortened interface (no destructors in the rest of the code either):
https://gist.github.com/Extrawurst/b20dc5ab84132ecab30d

the method `GetFriendByIndex` is the one crashing on win32.

Reply via email to