1. Post #561
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    I have a problem with the latest checkout of Steam4NET :
    When I run my program, the debugger bring me to this line
    Code:
    IntPtr address = CallCreateInterface( version, IntPtr.Zero );
    in steamworks.cs with the error :
    A call to PInvoke function 'Steam4NET!Steam4NET.Steamworks+NativeCreateInterf ace::Invoke' has unbalanced the stack. This is likely because the managed PInvoke signature does not match the unmanaged target signature. Check that the calling convention and parameters of the PInvoke signature match the target unmanaged signature.

    The line above is called by this one :
    Code:
    steamClient = Steamworks.CreateInterface<ISteamClient008>("SteamClient008");
    What can I do about it ?
    Very odd. You shouldn't be having that issue at all.

    I've been sitting on some uncommitted changes to the Steamworks class. I've committed them now. Let me know if this solves any of the problems you're having.

  2. Post #562
    OrYgin's Avatar
    November 2007
    751 Posts
    Same error.

  3. Post #563
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Are you running a Steam beta or something of that sort?

    I dug into my Steamclient.dll, and it's still taking two arguments, a version string and a int pointer.

    If you're running a beta, figure out exactly which steamclient.dll it's loading, and upload it so I can take a look at it.

    Otherwise I have no idea what is going on. It seems like your library differs.

  4. Post #564
    OrYgin's Avatar
    November 2007
    751 Posts
    I'm not on the beta (I tried with it, I had the same error).

    The steamclient.dll file version is 0.89.39.43
    Product version is 3.0.0.1

  5. Post #565
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Your library has the same version as mine.

    Not sure what's wrong, my test code works fine.

    It may be a function you're calling before that one. Can you show more of your code?

  6. Post #566
    OrYgin's Avatar
    November 2007
    751 Posts
    Steam4Test work for me too.

    Here's my actual code :
    Code:
     public Form1()
            {
                InitializeComponent();
    
                if (!Steamworks.Load())
                    return;
    
                steamClient = Steamworks.CreateInterface<ISteamClient008>("SteamClient008");
                
                if (steamClient == null)
                {
                    Status.Text = "Error with Steam client";
                    return;
                }
                
                pipe = steamClient.CreateSteamPipe();
                user = steamClient.ConnectToGlobalUser(pipe);
    
                ISteamUtils004 utils = Steamworks.CastInterface<ISteamUtils004>(steamClient.GetISteamUtils(pipe, "SteamUtils004"));
                ISteamFriends005 friends = Steamworks.CastInterface<ISteamFriends005>(steamClient.GetISteamFriends(user, pipe, "SteamFriends005"));

  7. Post #567
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Your example code works for me. v0v

  8. Post #568
    OrYgin's Avatar
    November 2007
    751 Posts
    Actually, my code now works without reason in Release mode, not in debug.

    Edited:

    Now, how can I get the current played game AppID ?

  9. Post #569
    Gold Member
    LuaStoned's Avatar
    September 2007
    1,356 Posts
    Now that Steam is avaialable for Mac, is there a chance to get some steam-chat like thing for iPhones? :v
    Reply With Quote Edit / Delete Reply Austria Show Events Bad Spelling Bad Spelling x 1 (list)

  10. Post #570
    OrYgin's Avatar
    November 2007
    751 Posts
    Now that Steam is avaialable for Mac, is there a chance to get some steam-chat like thing for iPhones? :v
    It already was.

    I have half-finished a server for a mobile device application.
    If some iPhone coder want to work with me to get a complete app, we could finish it.

  11. Post #571
    DrTaxi's Avatar
    September 2009
    2,741 Posts
    It already was.

    I have half-finished a server for a mobile device application.
    If some iPhone coder want to work with me to get a complete app, we could finish it.
    Out of curiosity, does your server handle multiple users on one machine?
    And does it use the "normal" OSW or the stuff that works without a running client?

  12. Post #572
    OrYgin's Avatar
    November 2007
    751 Posts
    I don't want it to be able to run multiple connections, that would be stupid (two people at the same time on a steam account ?!)

    And it needs Steam to be running, it's a lot easier.

  13. Post #573
    DrTaxi's Avatar
    September 2009
    2,741 Posts
    I'm sure there's a way to get multiple instances of Steam to run at the same time, I meant multiple Steam accounts, as not everyone could run their own server. Now, while people shouldn't trust strangers (who aren't even faceless companies like the guys running Nimbuzz etc.) with their Steam data, clans could set up servers for their members etc.
    Not having Steam running would make this a lot more plausible too - no nasty updates, no Steam clients eating all the RAM.

  14. Post #574
    OrYgin's Avatar
    November 2007
    751 Posts
    That's interesting, I'll see what I can do on that.

  15. Post #575
    Gold Member
    LuaStoned's Avatar
    September 2007
    1,356 Posts
    Voided posted something about OpenSteam on page 14 so you don't need Steam to be running at all. That's why I asked if it was possible to get OpenSteam ported to iPhones...

  16. Post #576
    DrTaxi's Avatar
    September 2009
    2,741 Posts
    Voided posted something about OpenSteam on page 14 so you don't need Steam to be running at all. That's why I asked if it was possible to get OpenSteam ported to iPhones...
    I'm pretty sure OpenSteam still only makes the Steam DLLs usable.

  17. Post #577
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Correct. OpenSteam makes use of existing steam dlls.

  18. Post #578
    Darkster's Avatar
    July 2009
    182 Posts
    Has Valve responded to that email yet? It would be nice not to worry about some unexpected backlash.

    This is looking amazing though.

  19. Post #579
    BIG TITLE
    Pat.Lithium's Avatar
    November 2009
    7,728 Posts
    Was there a link posted to that MSN plugin? I've been looking for something like that for awhile now.

  20. Post #580
    oh shit, it really says i payed 10.00. Im so fucked. im crying. we are gonna be poor.
    DogGunn's Avatar
    April 2005
    9,638 Posts
    Has Valve responded to that email yet? It would be nice not to worry about some unexpected backlash.
    Never did. Don't expect them too now.

  21. Post #581
    asherkin's Avatar
    October 2009
    40 Posts
    Has Valve responded to that email yet? It would be nice not to worry about some unexpected backlash.

    This is looking amazing though.
    This project has been public for 10 months now, I think anything would have happened by now.

  22. Post #582

    June 2010
    1 Posts
    Is OpenSteam still working? I tried the chat client just now and it wont log me in, saying "Unable to login!" "Unable to set email address". The comment on the project at the limetech.org repository says "Don't need this". Has it become obsolete?
    Reply With Quote Edit / Delete Reply United Kingdom Show Events Dumb Dumb x 3 (list)

  23. Post #583
    Matthew0505's Avatar
    January 2009
    1,274 Posts
    Here, have a medal
    Reply With Quote Edit / Delete Reply Australia Show Events Friendly Friendly x 1Winner Winner x 1 (list)

  24. Post #584
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    4 weeks since the last post? Aw snap.

    I guess a small update is in order.

    Progress on the steam networking stuff pretty much stopped as soon as school kicked in a while back, but luckily the semester is coming to a close and I'll have more time to work on things now.

    Other than that, OSW continues to be updated with the latest stuff that Valve is working on.

    Oh and the Treasure hunt? Leaderboards don't mean anything.
    Reply With Quote Edit / Delete Reply United States Show Events Programming King x 10Informative x 1Winner x 1Funny x 1Dumb x 1 (list)

  25. Post #585

    January 2010
    268 Posts


    Edited:

    Pretty nice too.
    Reply With Quote Edit / Delete Reply Lithuania Show Events Zing Zing x 6Funny Funny x 1 (list)

  26. Post #586
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Hey everyone, just figured I'd post to update on the latest OSW news.

    We've recently moved over to bitbucket and Mercurial as our SCM of choice.

    You can check out the repo here: https://bitbucket.org/VoiDeD/open-steamworks/overview

    I went and organized the directory structure a bit, if you're looking for the lib files you'll find them under "Resources" now.
    Reply With Quote Edit / Delete Reply Windows 7 United States Show Events Informative Informative x 1 (list)

  27. Post #587
    C0BRA's Avatar
    April 2011
    16 Posts
    Can we have the GUI in GTK and not WindowsForms?

  28. Post #588
    cool_myll's Avatar
    April 2011
    21 Posts
    Hey everyone, just figured I'd post to update on the latest OSW news.

    We've recently moved over to bitbucket and Mercurial as our SCM of choice.

    You can check out the repo here: https://bitbucket.org/VoiDeD/open-steamworks/overview

    I went and organized the directory structure a bit, if you're looking for the lib files you'll find them under "Resources" now.
    Does pidgin and imo.im use your api? I works excellent i wish they made a plugin for trillian which is the messenger of choice for me.
    Reply With Quote Edit / Delete Reply Windows XP Greece Show Events Late Late x 2 (list)

  29. Post #589
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Does pidgin and imo.im use your api? I works excellent i wish they made a plugin for trillian which is the messenger of choice for me.
    Not sure about either. OSW requires Steam to be installed and running on the machine using the API (for the most part).

    It's more likely they're using the information from the SteamRE project of ours.
    Reply With Quote Edit / Delete Reply Windows 7 United States Show Events Agree Agree x 1 (list)

  30. Post #590
    My Blog
    Spencer Sharkey's Avatar
    July 2009
    1,958 Posts
    Is there any tag support yet (getting the tag a user is in)? I couldn't find anything looking around.

    You know, these things...


  31. Post #591
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Is there any tag support yet (getting the tag a user is in)? I couldn't find anything looking around.

    You know, these things...

    https://bitbucket.org/VoiDeD/open-st...iends.h#cl-102

    Just keep in mind this is in an IClient interface and will probably break your programs next time Steam updates.
    Reply With Quote Edit / Delete Reply Windows 7 United States Show Events Friendly Friendly x 3 (list)

  32. Post #592
    Winded's Avatar
    April 2012
    106 Posts
    I got IClientEngine created correctly, and IClientFriends is also created without errors, but using any functions in IClientFriends causes the AccessViolationException, saying "Trying to read or write protected memory, this could be because of damaged memory". (Isn't a straigt translation but whatever).
    Reply With Quote Edit / Delete Reply Windows 7 Finland Show Events Dumb Dumb x 1 (list)

  33. Post #593
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    That's a consequence of using an unsafe interface. Don't use IClient.

  34. Post #594
    Winded's Avatar
    April 2012
    106 Posts
    That's a consequence of using an unsafe interface. Don't use IClient.
    So, is there any other way to send messages to group chats than using IClientFriends?

  35. Post #595
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    None that I know of.

  36. Post #596
    Blue Member
    Dennab
    June 2009
    1,031 Posts
    Code:
    SteamContext.ClientFriends.SetPersonaState(EPersonaState.k_EPersonaStateSnooze);
    Doesn't seem to be working. Have steam stopped us from being able to use it?
    Reply With Quote Edit / Delete Reply Windows Vista United Kingdom Show Events Dumb Dumb x 1 (list)

  37. Post #597
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Code:
    SteamContext.ClientFriends.SetPersonaState(EPersonaState.k_EPersonaStateSnooze);
    Doesn't seem to be working. Have steam stopped us from being able to use it?
    I really don't know how many times I have to repeat myself.

    That's a consequence of using an unsafe interface. Don't use IClient.
    Reply With Quote Edit / Delete Reply Windows 7 United States Show Events Agree Agree x 3Dumb Dumb x 1 (list)

  38. Post #598
    Nielk1's Avatar
    January 2008
    82 Posts
    Is there a way to recover from an AccessViolationException caused by the interface being out of date?

    I mean, I know there are tricks to catching that uncatchable exception for doing a graceful exit, but you can't do much else since the code before the actual exception might not have yet executed and code after might have (basically your program is in an unknown state).

    I am looking at caching certain information into a local SQLite3 DB that is generated from the data fetched from the IClientEngine for use when the interface is invalid until I can get the new interface in, however, if I cannot work around when the error occurs to use my cache I have an issue.

    One though I had was to make the code that interfaces with Steam and writes to this cache a separate executable so that when it crashes the main application does not and can look at the output. However, if there is a way to check that the interface is no longer correct without causing an AccessViolationException or other error that would be optimal.

    What are your thoughts on this and do you have any suggestions?

    I am working in Qt Creator and making use of Qt's threading and other functions in case that has any effect, though I believe that the solution to this issue is probably IDE independent. As a final note, I would like to avoid any solutions that are OS dependent (though this should not come up unless I look at Microsoft specific keywords like __try __, which are more the compiler and less the host OS).

    And yes, to get the data I want to get I need to use the unsafe interfaces.

  39. Post #599

    June 2012
    2 Posts
    Probably a stupid question, but is there a way to get a callback when the Steam client is closing?

    I tried to use SteamShutdown_t, but it's not responding at all (unless i'm misinterpreting what it does). Others such as appdata or persona state changes are working just fine.

    I'm using Steam4NET compiled from the latest repo version.

    Any ideas?

  40. Post #600
    Gold Member
    VoiDeD's Avatar
    August 2005
    860 Posts
    Probably a stupid question, but is there a way to get a callback when the Steam client is closing?

    I tried to use SteamShutdown_t, but it's not responding at all (unless i'm misinterpreting what it does). Others such as appdata or persona state changes are working just fine.

    I'm using Steam4NET compiled from the latest repo version.

    Any ideas?
    That's one of the issues I ran into when creating the chat logger. I've never seen SteamShutdown_t be posted, so I'm not sure.