• Advertisement
  • Popular Tags

  • Popular Now

  • Advertisement
  • Similar Content

    • By Just4lol
      I'm looking for my dream teammate(s) to help me work on my Unity game. I still dont know where Im going with that project but I want to make a good final product that I would be able to sell or publish it for free on Steam.  Here a video of the prototype (The only thing I dint made is the skybox) https://www.youtube.com/watch?v=y2Otmt9jRkc
      My discord : Just4lol#46982
      I want somone at least as competent as me : 
      - I want somone with at least one year of experience in Unity (already worked with scriptable object and know oop).
      - Already worked with shaders or can do editors tools is a plus.
      - Can do 3d models in Blender or can do 2d art for the ui or particles effects.
      - Can make soundtracks or sound effects a bonus.
      Im a french Canadian so mind my english I will do my best to edit any errors I see. 
    • By Damnwing0405
      I am looking for talents to form a team of making a strategy base action game. Talents I am currently looking for are : -
      (I) Unity programmer (mobile)
      (II) Game designer
      (III) 3d Artist
      (IV) SFX Artist
      The attachment is some game concept for the game. All the concept will be turn into 3d or card form. The game will be strategy game where the players can form their own team and control the units in the battle field real time to fight against each others.  If you are interested to know more details please pm me or send an email to damnwing0405@gmail.com

    • By bsudheer
      Leap Leap Leap! is a fast-paced, endless running game where you leap from rooftop to rooftop in a computer simulated world.

      This is a free run game and get excited by this fabulous computer simulated world of skyscrapers and surreal colors in parallax effect. On your way, collect cubes and revival points as many as you can to make a long run.

      Features of Leap Leap Leap:
      -Option of two themes: Black or White.
      -Simple one touch gameplay.
      -Attractive art.
      -Effective use of parallax.
      To Download the game:
      Playstore: https://play.google.com/store/apps/details?id=com.avakaigames.leap
      Appstore: https://itunes.apple.com/us/app/leap-leap-leap/id683764406?mt=8

    • By BillyGD

      Play Flick Football 3D @ https://gamejolt.com/games/flickfootball3d/326078
      Check out our Facebook page @ https://www.facebook.com/FlickFootball3D/
      Flick Football 3D is a turn based football game inspired by the table top classic 'Subbuteo'.
      The game is currently in very early Alpha development. There is still a lot to be done before the first proper release but I have decided to release this playable version to get as much feedback as possible.
      The only game mode currently available in this release is the 'Practice Mode' which gives you control of both teams. Either play against yourself to get used to how the game works or play against friends and family on the same computer!
      Planned Future Features Include:
      -Take control of your own custom team in the single player campaign.
      -Play in online leagues and tournaments against other players in the multiplayer mode.
      -Fully customisable stadiums to make you stand out from the rest of the players.
      -Improve your players stats and skills by playing matches and setting up training sessions.
      Flick Football 3D is available for Windows, Mac and Browser.
      Thank you for viewing my game, all feedback is greatly appreciated. I can be contacted at; BillyGDev@outlook.com
      'Flick Football 3D' is also the development name for the game and I haven't yet decided what the full release will be called, so if you have any ideas please drop me a message!
    • By drcrack
      It is a combination of fundamental RPG elements and challenging, session-based MOBA elements. Having features such as creating your unique build, customizing your outfit and preparing synergic team compositions with friends, players can brave dangerous adventures or merciless arena fights against deadly creatures and skilled players alike.

      This time with no grinding and no pay to win features.

      We're still looking for:
      1) 3D Character Artist
      2) 3D Environment Artist
      3) Animator
      4) Sound Designer
      5) VFX Artist

      Discord https://discord.gg/zXpY29V or drcrack#4575
  • Advertisement
  • Advertisement
Sign in to follow this  

Unity Converting C++ DLL Header to C#

This topic is 4056 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

Hey all, I have another post in the Alternative Game Libraries forum here, but as I thought this was a separate subject (I'm attempting to actually do this myself rather than looking for an already existing wrapper), I could use some serious hints in programming this. I'm attempting to implement a C# wrapper DLL for the FMOD Designer API/Event System. Essentially, FMOD provides a DLL called fmod_event.dll to use in programs, but unlike the fmod.dll system, only provides a C++ wrapper for the Designer API. I've already got the FMOD Ex distribution itself up and running with the C# headers they provided with no problem. I used to program in C# awhile back (a few years), but never attempted to load a DLL, let alone one in an unmanaged language like C++. I don't even know the first place to start in converting this C++ header to C#. Here's a class from the C++ header. I think F_API is declared as __declspec(dllexport) F_STDCALL in the files. This file portion is distributed with FMOD Ex under FMOD/fmoddesignerapi/api/inc/fmod_event.h:
typedef FMOD_RESULT (F_CALLBACK *EVENT_CALLBACK)  (Event *event, EVENT_CALLBACKTYPE type, void *param1, void *param2, void *userdata);

        FMOD EventSystem API

    FMOD_RESULT F_API EventSystem_Create(EventSystem **eventsystem);

    class EventSystem
        public :

        virtual FMOD_RESULT F_API init               (int maxchannels, FMOD_INITFLAGS flags, void *extradriverdata, EVENT_INITFLAGS eventflags = EVENT_INIT_NORMAL) = 0;
        virtual FMOD_RESULT F_API release            () = 0;
        virtual FMOD_RESULT F_API update             () = 0;
        virtual FMOD_RESULT F_API setMediaPath       (const char *path) = 0;
        virtual FMOD_RESULT F_API setPluginPath      (const char *path) = 0;
        virtual FMOD_RESULT F_API getVersion         (unsigned int *version) = 0;
        virtual FMOD_RESULT F_API getInfo            (EVENT_SYSTEMINFO *info) = 0;
        virtual FMOD_RESULT F_API getSystemObject    (System **system) = 0;

        virtual FMOD_RESULT F_API load               (const char *filename, EVENT_LOADINFO *loadinfo, EventProject **project) = 0;
        virtual FMOD_RESULT F_API unload             () = 0;

        virtual FMOD_RESULT F_API getProject         (const char *name, EventProject **project) = 0;
        virtual FMOD_RESULT F_API getProjectByIndex  (int index,        EventProject **project) = 0;
        virtual FMOD_RESULT F_API getNumProjects     (int *numprojects) = 0;
        virtual FMOD_RESULT F_API getCategory        (const char *name, EventCategory **category) = 0;
        virtual FMOD_RESULT F_API getCategoryByIndex (int index,        EventCategory **category) = 0;
        virtual FMOD_RESULT F_API getNumCategories   (int *numcategories) = 0;
        virtual FMOD_RESULT F_API getReverb          (const char *name, EventReverb **reverb) = 0;
        virtual FMOD_RESULT F_API getReverbByIndex   (const int index,  EventReverb **reverb) = 0;
        virtual FMOD_RESULT F_API getNumReverbs      (int *numreverbs) = 0;

        virtual FMOD_RESULT F_API getGroup           (const char *name, bool cacheevents, EventGroup **group) = 0;
        virtual FMOD_RESULT F_API getEvent           (const char *name, EVENT_MODE mode, Event **event) = 0;
        virtual FMOD_RESULT F_API getEventBySystemID (unsigned int systemid, EVENT_MODE mode, Event **event) = 0;
        virtual FMOD_RESULT F_API getNumEvents       (int *numevents) = 0;

        virtual FMOD_RESULT F_API set3DNumListeners  (int numlisteners) = 0;
        virtual FMOD_RESULT F_API get3DNumListeners  (int *numlisteners) = 0;
        virtual FMOD_RESULT F_API set3DListenerAttributes(int listener, const FMOD_VECTOR *pos, const FMOD_VECTOR *vel, const FMOD_VECTOR *forward, const FMOD_VECTOR *up) = 0;
        virtual FMOD_RESULT F_API get3DListenerAttributes(int listener, FMOD_VECTOR *pos, FMOD_VECTOR *vel, FMOD_VECTOR *forward, FMOD_VECTOR *up) = 0;

        virtual FMOD_RESULT F_API registerMemoryFSB  (const char *filename, void *fsbdata, unsigned int fsbdatalen) = 0;
        virtual FMOD_RESULT F_API unregisterMemoryFSB(const char *filename) = 0;

        virtual ~EventSystem(){};

Any hints, advice, code, ANYTHING would be helpful. I really appreciate it! Thanks, Aviosity

Share this post

Link to post
Share on other sites
I believe some of these links may help you:


Hope this helps.

Edit: You should look into what the return values and calling conventions are as well. Try and find what FMOD_RESULT, F_API, etc are. Also see if there's anything on classes. All of the links I've provided talk about calling functions, I wouldn't know where to start with what you posted either, heh. Good luck.

Share this post

Link to post
Share on other sites
Thanks a lot for the links, they've got me started. I doubt I'll get very far by demo time, and I've informed my team as such, so we're working on a backup solution.


Share this post

Link to post
Share on other sites
Sign in to follow this  

  • Advertisement