Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 9011825
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: June 16, 20262026-06-16T02:50:33+00:00 2026-06-16T02:50:33+00:00

Given this interface: struct ISomething { virtual void __stdcall DoSomething() = 0; }; Can

  • 0

Given this interface:

struct ISomething
{
    virtual void __stdcall DoSomething() = 0;
};

Can the application call DoSomething on a concrete object returned from a dll or shared object safely, even when the compilation settings are different?

(Assume __stdcall is #defined to nothing on a non-Visual Studio compiler.)

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-06-16T02:50:35+00:00Added an answer on June 16, 2026 at 2:50 am

    When you say ‘object’ are you, in fact, referring to a pointer to object in question? I’m assuming so, since you very-well cannot create an ISomething due to the pure virtual decls.

    So if you mean:

    ISomething* pObj = SomeAPICallToGetAnObject();
    pObj->DoSomething();
    

    then it will work so long as both caller and implementor agree on the calling convention, packing of structured parameters if there are any, etc. Said-conventions are declaration-based, and are contractually enforced by the implementer+caller. Nasty things happen if you fail to define this as part of the declarative contract.

    Is such a thing common in practice? Absolutely. The entire COM-side of all the WIN32 api code I often use is most-assuredly not compiled with the same various compilation settings I used on a regular basis. But the contract I get from the header decls ensures I use the proper conventions to make it work. Those declarations are, in fact, ensuring my compilation agrees with the requirements to make the call a success.

    I hope I didn’t misunderstand your question.

    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

Given this magical interface: public interface IHat<out TRabbit> { TRabbit Take(); } And this
Given this example: Interface CustomersDao Function Get(ByVal Id As Integer) As Customer Function Get(ByVal
Given this: Interface IBase {string X {get;set;}} Interface ISuper {string Y {get;set;}} class Base
Given this method to work on a HTML page in a webbrowser: bool semaphoreForDocCompletedEvent;
Given this code: List<Integer> ints = new ArrayList<Integer>(); // Type mismatch: // cannot convert
Given this plain JavaScript construct: var MyObject = function() { var privateArray = [
Given this CSS body { font-size: 62.5%; font-family: Arial,sans-serif; line-height: 2em; color:#333 } .post_text
Given this JavaScript code (which is just a comment referring to a url): //
given this coffeescript data = Foo: B Foos: [ A, B ] Blah: Id:
Given this : delimiter // create procedure setup() begin declare d datetime; set d

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.