FIX: Link Failures with Non-Default Calling Conventions

ID: Q156398

The information in this article applies to:

SYMPTOMS

If the default calling convention for the compiler you are using is something other than __cdecl, you will receive link errors when you use the GetObjectContext and SafeRef functions.

CAUSE

The function prototypes for GetObjectContext and SafeRef are not explicit in their calling conventions.

STATUS

Microsoft has confirmed this to be a problem in Microsoft Transaction Server version 1.0. This problem was corrected in Microsoft Transaction Server version 1.1. For information on obtaining version 1.1, please see the following article the Microsoft Knowledge Base:

   ARTICLE-ID: Q168031
   TITLE     : How to Obtain Microsoft Transaction Server Version 1.1

MORE INFORMATION

The following function calls

   extern HRESULT GetObjectContext (IObjectContext** ppInstanceContext);
   extern void * SafeRef(REFIID rid, IUnknown* pUnk);

Have been changed to:

   extern HRESULT __cdecl GetObjectContext (IObjectContext**
   ppInstanceContext);
   extern void* __cdecl SafeRef(REFIID rid, IUnknown* pUnk);

Additional query words: nondefault call
Keywords          : kbprg kbusage kbbug1.00 kbfix1.10 TSrvGen 
Version           : 1.0
Platform          : WINDOWS
Issue type        : kbbug
Solution Type     : kbfix

Last Reviewed: October 30, 1997