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.