Browse Source

Revamp Stdcall

LZMPDev 5 years ago
parent
commit
ad0dab0d4c
58 changed files with 1380 additions and 1380 deletions
  1. 20 20
      BeefLibs/Beefy2D/src/BFApp.bf
  2. 21 21
      BeefLibs/Beefy2D/src/BFWindow.bf
  3. 2 2
      BeefLibs/Beefy2D/src/Utils.bf
  4. 5 5
      BeefLibs/Beefy2D/src/gfx/DrawLayer.bf
  5. 5 5
      BeefLibs/Beefy2D/src/gfx/Font.bf
  6. 11 11
      BeefLibs/Beefy2D/src/gfx/Graphics.bf
  7. 12 12
      BeefLibs/Beefy2D/src/gfx/Image.bf
  8. 12 12
      BeefLibs/Beefy2D/src/gfx/Model.bf
  9. 7 7
      BeefLibs/Beefy2D/src/gfx/RenderState.bf
  10. 3 3
      BeefLibs/Beefy2D/src/gfx/Shader.bf
  11. 2 2
      BeefLibs/Beefy2D/src/gfx/VertexDefinition.bf
  12. 10 10
      BeefLibs/Beefy2D/src/res/PSDReader.bf
  13. 1 1
      BeefLibs/Beefy2D/src/res/ResourceManager.bf
  14. 1 1
      BeefLibs/Beefy2D/src/res/SoundBank.bf
  15. 1 1
      BeefLibs/Beefy2D/src/res/SoundEvent.bf
  16. 1 1
      BeefLibs/Beefy2D/src/res/SoundParameter.bf
  17. 3 3
      BeefLibs/Beefy2D/src/sound/SoundInstance.bf
  18. 2 2
      BeefLibs/Beefy2D/src/sound/SoundManager.bf
  19. 10 10
      BeefLibs/Beefy2D/src/utils/BeefPerf.bf
  20. 3 3
      BeefLibs/Beefy2D/src/utils/HTTP.bf
  21. 7 7
      BeefLibs/Beefy2D/src/utils/PerfTimer.bf
  22. 313 313
      BeefLibs/FMOD/src/FMod.bf
  23. 18 18
      BeefLibs/MiniZ/src/Zip.bf
  24. 3 3
      BeefLibs/corlib/src/Console.bf
  25. 1 1
      BeefLibs/corlib/src/Double.bf
  26. 1 1
      BeefLibs/corlib/src/Float.bf
  27. 15 15
      BeefLibs/corlib/src/Net/Socket.bf
  28. 11 11
      BeefLibs/corlib/src/OperatingSystem.bf
  29. 85 85
      BeefLibs/corlib/src/Platform.bf
  30. 139 139
      BeefLibs/corlib/src/Windows.bf
  31. 13 13
      BeefTools/DocPrep/src/Program.bf
  32. 313 313
      BeefTools/MemProfiler/FMod.bf
  33. 1 1
      IDE/mintest/minlib/src/System/Object.bf
  34. 70 70
      IDE/mintest/minlib/src/System/Platform.bf
  35. 8 8
      IDE/mintest/src/main.bf
  36. 14 14
      IDE/src/Clang/ClangCompiler.bf
  37. 5 5
      IDE/src/Clang/ClangHelper.bf
  38. 30 30
      IDE/src/Compiler/BfCompiler.bf
  39. 18 18
      IDE/src/Compiler/BfParser.bf
  40. 7 7
      IDE/src/Compiler/BfPassInstance.bf
  41. 5 5
      IDE/src/Compiler/BfProject.bf
  42. 10 10
      IDE/src/Compiler/BfResolvePassData.bf
  43. 24 24
      IDE/src/Compiler/BfSystem.bf
  44. 20 20
      IDE/src/Debugger/Breakpoint.bf
  45. 1 1
      IDE/src/Debugger/Callbacks.bf
  46. 78 78
      IDE/src/Debugger/DebugManager.bf
  47. 7 7
      IDE/src/Debugger/Profiler.bf
  48. 1 1
      IDE/src/Debugger/StepFilter.bf
  49. 3 3
      IDE/src/IDEApp.bf
  50. 1 1
      IDE/src/Settings.bf
  51. 5 5
      IDE/src/SpellChecker.bf
  52. 2 2
      IDE/src/Targets.bf
  53. 1 1
      IDE/src/ui/SourceEditWidgetContent.bf
  54. 1 1
      IDE/src/ui/SourceViewPanel.bf
  55. 2 2
      IDE/src/util/BfLog.bf
  56. 7 7
      IDE/src/util/Curl.bf
  57. 6 6
      IDE/src/util/Git.bf
  58. 2 2
      IDE/src/util/Transfer.bf

+ 20 - 20
BeefLibs/Beefy2D/src/BFApp.bf

@@ -72,64 +72,64 @@ namespace Beefy
 		public Matrix4? mColorMatrix;
 		public ConstantDataDefinition mColorMatrixDataDef = new ConstantDataDefinition(16, new ConstantDataDefinition.DataType[] { ConstantDataDefinition.DataType.Matrix | ConstantDataDefinition.DataType.PixelShaderUsage }) ~ delete _;
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Lib_Startup(int32 argc, char8** argv, void* startupCallback);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_GetDesktopResolution(out int32 width, out int32 height);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_GetWorkspaceRect(out int32 x, out int32 y, out int32 width, out int32 height);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BFApp_GetWorkspaceRectFrom(int32 x, int32 y, int32 width, int32 height, out int32 outX, out int32 outY, out int32 outWidth, out int32 outHeight);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_Create();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_Delete();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_SetRefreshRate(int32 rate);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         public static extern void BFApp_SetDrawEnabled(int32 enabled);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_Init();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_Run();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_Shutdown();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_SetCallbacks(void* updateDelegate, void* drawDelegate);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BFApp_GetInstallDir();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_SetCursor(int32 cursor);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BFApp_GetClipboardData(char8* format, out int32 size);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_ReleaseClipboardData(void* ptr);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFApp_SetClipboardData(char8* format, void* ptr, int32 size, int32 resetClipboard);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BFApp_CheckMemory();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BFApp_RehupMouse();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void* BFApp_GetSoundManager();
 
         UpdateDelegate mUpdateDelegate ~ delete _;

+ 21 - 21
BeefLibs/Beefy2D/src/BFWindow.bf

@@ -179,71 +179,71 @@ namespace Beefy
         static NativeMouseLeaveDelegate sNativeMouseLeaveDelegate ~ delete _;
         static NativeMenuItemSelectedDelegate sNativeMenuItemSelectedDelegate ~ delete _;
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BFApp_CreateWindow(void* parent, char8* title, int32 x, int32 y, int32 width, int32 height, int32 windowFlags);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* BFWindow_GetNativeUnderlying(void* window);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetCallbacks(void* window, void* movedDelegate, void* closeQueryDelegate, void* closedDelegate, 
             void* gotFocusDelegate, void* lostFocusDelegate,
 			void* keyCharDelegate, void* keyDownDelegate, void* keyUpDelegate, void* hitTestDelegate,
             void* mouseMoveDelegate, void* mouseProxyMoveDelegate, void* mouseDownDelegate, void* mouseUpDelegate, void* mouseWheelDelegate, void* mouseLeaveDelegate,
             void* menuItemSelectedDelegate);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BFWindow_SetTitle(void* window, char8* title);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetMinimumSize(void* window, int32 minWidth, int32 minHeight, bool clientSized);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_GetPosition(void* window, out int32 x, out int32 y, out int32 width, out int32 height, out int32 clientX, out int32 clientY, out int32 clientWidth, out int32 clientHeight);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BFWindow_GetPlacement(void* window, out int32 normX, out int32 normY, out int32 normWidth, out int32 normHeight, out int32 showKind);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_Resize(void* window, int32 x, int32 y, int32 width, int32 height, int showKind);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_Close(void* window, int32 force);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetForeground(void* window);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_LostFocus(void* window, void* newFocus);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetNonExclusiveMouseCapture(void* window);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetClientPosition(void* window, int32 x, int32 y);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetAlpha(void* window, float alpha, uint32 destAlphaSrcMask, int32 mouseVisible);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BFWindow_SetMouseVisible(void* window, bool mouseVisible);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BFWindow_CaptureMouse(void* window);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BFWindow_IsMouseCaptured(void* window);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BFWindow_AddMenuItem(void* window, void* parent, int32 insertIdx, char8* text, char8* hotKey, void* bitmap, int32 enabled, int32 checkState, int32 radioCheck);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BFWindow_ModifyMenuItem(void* window, void* item, char8* text, char8* hotKey, void* bitmap, int32 enabled, int32 checkState, int32 radioCheck);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BFWindow_DeleteMenuItem(void* window, void* item);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int BFWindow_GetDPI(void* window);
 
         public static BFWindow GetBFWindow(void* window)

+ 2 - 2
BeefLibs/Beefy2D/src/Utils.bf

@@ -13,10 +13,10 @@ namespace Beefy
     {
         static Random mRandom = new Random() ~ delete _;
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 BF_TickCount();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 BF_TickCountMicroFast();
 
         public static float Deg2Rad = Math.PI_f / 180.0f;

+ 5 - 5
BeefLibs/Beefy2D/src/gfx/DrawLayer.bf

@@ -13,19 +13,19 @@ namespace Beefy.gfx
 #if !STUDIO_CLIENT
     public class DrawLayer
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* DrawLayer_Create(void* window);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void DrawLayer_Delete(void* drawLayer);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void DrawLayer_Clear(void* drawLayer);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void DrawLayer_Activate(void* drawLayer);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void DrawLayer_DrawToRenderTarget(void* drawLayer, void* texture);
 
         public void* mNativeDrawLayer;

+ 5 - 5
BeefLibs/Beefy2D/src/gfx/Font.bf

@@ -38,19 +38,19 @@ namespace Beefy.gfx
 
     public class Font
     {
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern FTFont* FTFont_Load(char8* fileName, float pointSize);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void FTFont_Delete(FTFont* ftFont, bool cacheRetain);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void FTFont_ClearCache();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern FTGlyph* FTFont_AllocGlyph(FTFont* ftFont, int32 char8Code, bool allowDefault);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 FTFont_GetKerning(FTFont* font, int32 char8CodeA, int32 char8CodeB);
 
 		static Dictionary<String, String> sFontNameMap ~ DeleteDictionaryAndKeysAndItems!(_);

+ 11 - 11
BeefLibs/Beefy2D/src/gfx/Graphics.bf

@@ -400,37 +400,37 @@ namespace Beefy.gfx
 #if !STUDIO_CLIENT
     public class Graphics : GraphicsBase
     {               
-        [StdCall, CLink]	
+        [CallingConvention(.Stdcall), CLink]	
         static extern void Gfx_SetRenderState(void* renderState);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_AllocTris(void* textureSegment, int32 vtxCount);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_SetDrawVertex(int32 idx, float x, float y, float z, float u, float v, uint32 color);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_CopyDrawVertex(int32 destIdx, int32 srcIdx);
 
-        //[StdCall, CLink]
+        //[CallingConvention(.Stdcall), CLink]
         //static unsafe extern void Gfx_DrawIndexedVertices2D(void* vtxData, int vtxCount, int* idxData, int idxCount, float a, float b, float c, float d, float tx, float ty, float z);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_DrawIndexedVertices2D(int32 vertexSize, void* vtxData, int32 vtxCount, uint16* idxData, int32 idxCount, float a, float b, float c, float d, float tx, float ty, float z);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_SetShaderConstantData(int32 slotIdx, void* data, int32 size);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_SetShaderConstantDataTyped(int32 slotIdx, void* data, int32 size, int32* typeData, int32 typeCount);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_DrawQuads(void* textureSegment, Vertex3D* vertices, int32 vtxCount);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Gfx_QueueRenderCmd(void* nativeRenderCmd);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void Gfx_SetTexture_TextureSegment(int32 textureIdx, void* textureSegment);
         
         public this()

+ 12 - 12
BeefLibs/Beefy2D/src/gfx/Image.bf

@@ -33,40 +33,40 @@ namespace Beefy.gfx
         public void* mNativeTextureSegment;
         public PixelSnapping mPixelSnapping = PixelSnapping.Auto;
         
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         public static extern void Gfx_DrawTextureSegment(void* textureSegment, float a, float b, float c, float d, float tx, float ty, float z, uint32 color, int32 pixelSnapping);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Gfx_LoadTexture(char8* fileName, int32 flags);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_CreateDynTexture(int32 width, int32 height);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_CreateRenderTarget(int32 width, int32 height, int32 destAlpha);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_ModifyTextureSegment(void* destSegment, void* srcTextureSegment, int32 srcX, int32 srcY, int32 srcWidth, int32 srcHeight);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Gfx_CreateTextureSegment(void* textureSegment, int32 srcX, int32 srcY, int32 srcWidth, int32 srcHeight);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void Gfx_SetDrawSize(void* textureSegment, int32 width, int32 height);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Gfx_Texture_SetBits(void* textureSegment, int32 destX, int32 destY, int32 destWidth, int32 destHeight, int32 srcPitch, uint32* bits);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Gfx_Texture_GetBits(void* textureSegment, int32 srcX, int32 srcY, int32 srcWidth, int32 srcHeight, int32 destPitch, uint32* bits);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_Texture_Delete(void* textureSegment);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 Gfx_Texture_GetWidth(void* textureSegment);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 Gfx_Texture_GetHeight(void* textureSegment);
 
         public this()

+ 12 - 12
BeefLibs/Beefy2D/src/gfx/Model.bf

@@ -56,16 +56,16 @@ namespace Beefy.gfx
             public String mName;
             public int32 mAnimIdx;
 
-            [StdCall, CLink]
+            [CallingConvention(.Stdcall), CLink]
             extern static void ModelDefAnimation_GetJointTranslation(void* nativeAnimation, int32 jointIdx, float frame, out JointTranslation jointTranslation);
 
-            [StdCall, CLink]
+            [CallingConvention(.Stdcall), CLink]
             extern static int32 ModelDefAnimation_GetFrameCount(void* nativeAnimation);
 
-            [StdCall, CLink]
+            [CallingConvention(.Stdcall), CLink]
             extern static char8* ModelDefAnimation_GetName(void* nativeAnimation);
 
-            [StdCall, CLink]
+            [CallingConvention(.Stdcall), CLink]
             extern static void ModelDefAnimation_Clip(void* nativeAnimation, int32 startFrame, int32 numFrames);
 
             public this(void* nativeModelDefAnimation)
@@ -93,22 +93,22 @@ namespace Beefy.gfx
         public Animation[] mAnims;
         public Dictionary<String, Animation> mAnimMap = new Dictionary<String, Animation>();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Res_OpenFBX(String fileName, void* nativeVertexDef);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* ModelDef_CreateModelInstance(void* nativeModel);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static float ModelDef_GetFrameRate(void* nativeModel);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static int32 ModelDef_GetJointCount(void* nativeModel);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static int32 ModelDef_GetAnimCount(void* nativeModel);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* ModelDef_GetAnimation(void* nativeModel, int32 animIdx);
 
         this(void* nativeModelDef)
@@ -154,10 +154,10 @@ namespace Beefy.gfx
 
     public class ModelInstance : RenderCmd
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void ModelInstance_SetJointTranslation(void* nativeModelInstance, int32 jointIdx, ref ModelDef.JointTranslation jointTranslation);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void ModelInstance_SetMeshVisibility(void* nativeModelInstance, int32 jointIdx, int32 visibility);
 
         public ModelDef mModelDef;

+ 7 - 7
BeefLibs/Beefy2D/src/gfx/RenderState.bf

@@ -22,25 +22,25 @@ namespace Beefy.gfx
 #if !STUDIO_CLIENT
     public class RenderState
     {        
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_CreateRenderState(void* srcNativeRenderState);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_Delete(void* renderState);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_SetClip(void* renderState, float x, float y, float width, float height);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_DisableClip(void* renderState);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_SetShader(void* nativeRenderState, void* nativeShader);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_SetDepthFunc(void* nativeRenderState, int32 depthFunc);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void RenderState_SetDepthWrite(void* nativeRenderState, int32 depthWrite);
 
         public void* mNativeRenderState;

+ 3 - 3
BeefLibs/Beefy2D/src/gfx/Shader.bf

@@ -19,13 +19,13 @@ namespace Beefy.gfx
         public void* mNativeShader;
         public Dictionary<String, ShaderParam> mShaderParamMap;
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_LoadShader(char8* fileName, void* vertexDefinition);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_Shader_Delete(void* shader);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_GetShaderParam(void* shader, String paramName);
 
         public static Shader CreateFromFile(String fileName, VertexDefinition vertexDefinition)

+ 2 - 2
BeefLibs/Beefy2D/src/gfx/VertexDefinition.bf

@@ -34,10 +34,10 @@ namespace Beefy.gfx
         }
 
 #if !STUDIO_CLIENT
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Gfx_CreateVertexDefinition(VertexDefData* elementData, int32 numElements);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Gfx_VertexDefinition_Delete(void* nativeVertexDefinition);
 
         public void* mNativeVertexDefinition;

+ 10 - 10
BeefLibs/Beefy2D/src/res/PSDReader.bf

@@ -8,13 +8,13 @@ namespace Beefy.res
 #if !STUDIO_CLIENT
     public class PSDLayer
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void Res_PSDLayer_GetSize(void* layerInfo, out int32 x, out int32 y, out int32 width, out int32 height);
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static int32 Res_PSDLayer_GetLayerId(void* layerInfo);
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static char8* Res_PSDLayer_GetName(void* layerInfo);
-     	[StdCall, CLink]
+     	[CallingConvention(.Stdcall), CLink]
         extern static int32 Res_PSDLayer_IsVisible(void* layerInfo);
 
         public void* mNativeLayerInfo;
@@ -49,22 +49,22 @@ namespace Beefy.res
 
     public class PSDReader
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Res_OpenPSD(String fileName);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void Res_DeletePSDReader(void* pSDReader);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static int32 Res_PSD_GetLayerCount(void* pSDReader);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Res_PSD_GetLayerTexture(void* pSDReader, int32 layerIdx, out int32 xOfs, out int32 yOfs);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Res_PSD_GetMergedLayerTexture(void* pSDReader, void* layerIndices, int32 count, out int32 xOfs, out int32 yOfs);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void* Res_PSD_GetLayerInfo(void* pSDReader, int32 layerIdx);
         
         void* mNativePSDReader;

+ 1 - 1
BeefLibs/Beefy2D/src/res/ResourceManager.bf

@@ -28,7 +28,7 @@ namespace Beefy.res
 
     public class ResourceManager
     {
-        /*[StdCall, CLink]
+        /*[CallingConvention(.Stdcall), CLink]
         static extern void Wwise_Shutdown();*/
 
         public Dictionary<String, ResGroup> mResGroupMap = new Dictionary<String, ResGroup>() ~ delete _;

+ 1 - 1
BeefLibs/Beefy2D/src/res/SoundBank.bf

@@ -7,7 +7,7 @@ namespace Beefy.res
 {
     /*public class SoundBank
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Wwise_LoadBankByName(String name);
 
         public String mName;

+ 1 - 1
BeefLibs/Beefy2D/src/res/SoundEvent.bf

@@ -7,7 +7,7 @@ namespace Beefy.res
 {
     /*public class SoundEvent
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Wwise_SendEvent(uint32 eventId, void* objectId);
 
         public uint32 mWwiseEventId;

+ 1 - 1
BeefLibs/Beefy2D/src/res/SoundParameter.bf

@@ -7,7 +7,7 @@ namespace Beefy.res
 {
     /*public class SoundParameter
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 Wwise_SetRTPCValue(uint32 paramId, float value, void* soundGameObject);
 
         public uint32 mWwiseParamId;

+ 3 - 3
BeefLibs/Beefy2D/src/sound/SoundInstance.bf

@@ -4,13 +4,13 @@ namespace Beefy.sound
 {
 	struct SoundInstance
 	{
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void* BFSoundInstance_Play(void* nativeSoundInstance, bool looping, bool autoRelease);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BFSoundInstance_Release(void* nativeSoundInstance);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BFSoundInstance_IsPlaying(void* nativeSoundInstance);
 
 		void* mNativeSoundInstance;

+ 2 - 2
BeefLibs/Beefy2D/src/sound/SoundManager.bf

@@ -17,10 +17,10 @@ namespace Beefy.sound
 	{
 		void* mNativeSoundManager;
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int32 BFSoundManager_LoadSound(void* nativeSoundManager, char8* fileName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void* BFSoundManager_GetSoundInstance(void* nativeSoundManager, int32 sfxId);
 
 		public SoundSource LoadSound(StringView fileName)

+ 10 - 10
BeefLibs/Beefy2D/src/utils/BeefPerf.bf

@@ -4,34 +4,34 @@ namespace Beefy.utils
 {
 	static class BeefPerf
 	{
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpInit(char8* severName, char8* sessionName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpShutdown();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpRetryConnect();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpPause();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpUnpause();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpSetThreadName(char8* threadName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpEnter(char8* name);        
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpLeave();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BpEvent(char8* name, char8* details);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static char8* BpDynStr(char8* string);
 
 		public static void Init(StringView serverName, StringView sessionName)

+ 3 - 3
BeefLibs/Beefy2D/src/utils/HTTP.bf

@@ -13,13 +13,13 @@ namespace Beefy2D.utils
 
 		void* mNativeNetRequest;
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* HTTP_GetFile(char8* url, char8* destPath);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 HTTP_GetResult(void* netRequest, int32 waitMS);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void HTTP_Delete(void* netRequest);
 
 		public ~this()

+ 7 - 7
BeefLibs/Beefy2D/src/utils/PerfTimer.bf

@@ -6,25 +6,25 @@ namespace Beefy.utils
 {
     public abstract class PerfTimer
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_ZoneStart(char8* name);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_ZoneEnd();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_Message(char8* theString);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static int32 PerfTimer_IsRecording();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_StartRecording();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_StopRecording();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void PerfTimer_DbgPrint();
 
         static DisposeProxy mZoneEndDisposeProxy ~ delete _;

File diff suppressed because it is too large
+ 313 - 313
BeefLibs/FMOD/src/FMod.bf


+ 18 - 18
BeefLibs/MiniZ/src/Zip.bf

@@ -285,11 +285,11 @@ namespace MiniZ
 			DoNotSortCentralDirectory = 0x0800
 		}
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* malloc(int size);
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void free(void* ptr);
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* realloc(void* ptr, int newSize);
 
 		static void* def_alloc_func(void* opaque, int items, int size)
@@ -2726,42 +2726,42 @@ namespace MiniZ
 		const int32 SEEK_END = 2;
 		const int32 SEEK_SET = 0;
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern FILE* fopen(char8* fileName, char8* mode);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern FILE* freopen(char8* fileName, char8* mode, FILE* stream);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 fclose(FILE* stream);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 fflush(FILE* stream);
 
-		//[StdCall, CLink]
+		//[CallingConvention(.Stdcall), CLink]
 		//static extern int64 ftell64(FILE* stream);
 		static int64 ftell64(FILE* stream)
 		{
 			return _ftelli64(stream);
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int64 _ftelli64(FILE* stream);
 
-		//[StdCall, CLink]
+		//[CallingConvention(.Stdcall), CLink]
 		//static extern int64 fseek64(FILE* stream, int64 offset, int32 origin);
 		static int32 fseek64(FILE* stream, int64 offset, int32 origin)
 		{
 			return _fseeki64(stream, offset, origin);
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 _fseeki64(FILE* stream, int64 offset, int32 origin);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int fread(void* buf, int elementSize, int elementCount, FILE* stream);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int fwrite(void* buf, int elementSize, int elementCount, FILE* stream);
 
 		public struct ZipInternalState
@@ -2840,13 +2840,13 @@ namespace MiniZ
 			public int32 tm_isdst; // daylight savings time flag
 		};
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern time_t time(out time_t time);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern time_t mktime(tm* time);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern tm* localtime(time_t* time);
 
 		static time_t zip_dos_to_time_t(int32 dos_time, int32 dos_date)
@@ -2895,7 +2895,7 @@ namespace MiniZ
 			public time_t modtime;     // modification time
 		};
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 _utime64(char8* fileName, utimbuf* t);
 
 		static bool zip_set_file_times(char8* pFilename, time_t access_time, time_t modified_time)
@@ -4663,7 +4663,7 @@ namespace MiniZ
 			public time_t st_ctime;
 		};
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 _fstat64i32(char8* fileName, FILE_STAT_STRUCT* stat);
 
 		bool zip_add_mem_to_archive_file_in_place(char8* pZip_filename, char8* pArchive_name, void* pBuf, int buf_size, void* pComment, uint16 comment_size, ZipFlags level_and_flags_in)

+ 3 - 3
BeefLibs/corlib/src/Console.bf

@@ -42,13 +42,13 @@ namespace System
 			public uint16[2] mMaximumWindowSize;
 		}
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int SetConsoleTextAttribute(void* hConsoleOutput, uint16 wAttributes);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int GetConsoleScreenBufferInfo(void* hConsoleOutput, out CONSOLE_SCREEN_BUFFER_INFO lpConsoleScreenBufferInfo);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* GetStdHandle(uint32 nStdHandle);
 
 #if BF_PLATFORM_WINDOWS

+ 1 - 1
BeefLibs/corlib/src/Double.bf

@@ -148,7 +148,7 @@ namespace System
 			return .Ok(strtod(tempStr, null));
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 ftoa(float val, char8* str);
 
 		static extern int32 ToString(double val, char8* str);

+ 1 - 1
BeefLibs/corlib/src/Float.bf

@@ -130,7 +130,7 @@ namespace System
                 return 1;
         }
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 ftoa(float val, char8* str);
 
 		static extern int32 ToString(float val, char8* str);

+ 15 - 15
BeefLibs/corlib/src/Net/Socket.bf

@@ -128,57 +128,57 @@ namespace System.Net
 		}
 
 #if BF_PLATFORM_WINDOWS
-		[Import("wsock32.lib"), CLink, StdCall]
+		[Import("wsock32.lib"), CLink, CallingConvention(.Stdcall)]
 		static extern int32 WSAStartup(uint16 versionRequired, WSAData* wsaData);
 
-		[Import("wsock32.lib"), CLink, StdCall]
+		[Import("wsock32.lib"), CLink, CallingConvention(.Stdcall)]
 		static extern int32 WSAGetLastError();
 #else
 		[CLink]
 		static int32 errno;
 #endif
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern HostEnt* gethostbyname(char8* name);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern HSocket socket(int32 af, int32 type, int32 protocol);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 connect(HSocket s, SockAddr* name, int32 nameLen);
     
 #if BF_PLATFORM_WINDOWS
-		[Import("wsock32.lib"), CLink, StdCall]
+		[Import("wsock32.lib"), CLink, CallingConvention(.Stdcall)]
 		static extern int32 closesocket(HSocket s);
 #else
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 close(HSocket s);
 #endif
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 bind(HSocket s, SockAddr* name, int32 nameLen);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 listen(HSocket s, int32 backlog);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern HSocket accept(HSocket s, SockAddr* addr, int32* addrLen);
 
 #if BF_PLATFORM_WINDOWS
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 ioctlsocket(HSocket s, int cmd, int* argp);
 #else
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 ioctl(HSocket s, int cmd, int* argp);
 #endif
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 select(int nfds, FDSet* readFDS, FDSet* writeFDS, FDSet* exceptFDS, TimeVal* timeVal);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 recv(HSocket s, void* ptr, int32 len, int32 flags);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int32 send(HSocket s, void* ptr, int32 len, int32 flags);
 
 		public ~this()

+ 11 - 11
BeefLibs/corlib/src/OperatingSystem.bf

@@ -78,34 +78,34 @@ namespace System
 			public uint32 dwFileDateLS;       // e.g. 0
 		}
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static bool GetVersionExA(OSVersionInfoExA* lpVersionInformation);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static bool VerifyVersionInfoA(OSVersionInfoExA* lpVersionInformation, uint32 dwTypeMask, uint64 dwlConditionMask);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static uint64 VerSetConditionMask(uint64 dwlConditionMask, uint32 dwTypeBitMask, uint8 dwConditionMask);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static void GetNativeSystemInfo(SystemInfo* lpSystemInformation);
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static void GetSystemInfo(SystemInfo* lpSystemInfo);
 
-		[Import("netapi32.lib"), CLink, StdCall]
+		[Import("netapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		extern static uint32 NetWkstaGetInfo(char16* ServerName, uint32 Level, LPWKSTA_INFO_100* BufPtr);
-		[Import("netapi32.lib"), CLink, StdCall]
+		[Import("netapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		extern static int32 NetApiBufferFree(LPWKSTA_INFO_100 BufPtr);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		extern static uint32 GetFileVersionInfoSizeA(char8* lptstrFilename, uint32* lpdwHandle);
 
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		extern static bool GetFileVersionInfoA(char8* lptstrFilename, uint32* dwHandle, uint32 dwLen, void* lpData);
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		extern static bool VerQueryValueA(void* pBlock, char8* lpSubBlock, void** lplpBuffer, uint32* puLen);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		extern static int GetSystemMetrics(int nIndex);
 		#endif
 

+ 85 - 85
BeefLibs/corlib/src/Platform.bf

@@ -50,47 +50,47 @@ namespace System
 			TempFileError = (int)Result.TempFileError
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_TickCount();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpSystem_GetTimeStamp();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint8 BfpSystem_InterlockedExchange8(uint8* ptr, uint8 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint16 BfpSystem_InterlockedExchange16(uint16* ptr, uint16 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedExchange32(uint32* ptr, uint32 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedExchange64(uint64* ptr, uint64 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint8 BfpSystem_InterlockedExchangeAdd8(uint8* ptr, uint8 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint16 BfpSystem_InterlockedExchangeAdd16(uint16* ptr, uint16 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedExchangeAdd32(uint32* ptr, uint32 val); /// Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedExchangeAdd64(uint64* ptr, uint64 val);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint8 BfpSystem_InterlockedCompareExchange8(uint8* ptr, uint8 oldVal, uint8 newVal);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint16 BfpSystem_InterlockedCompareExchange16(uint16* ptr, uint16 oldVal, uint16 newVal);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedCompareExchange32(uint32* ptr, uint32 oldVal, uint32 newVal);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedCompareExchange64(uint64* ptr, uint64 oldVal, uint64 newVal);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSystem_GetExecutablePath(char8* outStr, int32* inOutStrSize, BfpSystemResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSystem_GetEnvironmentStrings(char8* outStr, int32* inOutStrSize, BfpSystemResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int32 BfpSystem_GetNumLogicalCPUs(BfpSystemResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpSystem_GetCPUTick();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpSystem_GetCPUTickFreq();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSystem_CreateGUID(Guid* outGuid);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSystem_GetComputerName(char8* outStr, int32* inOutStrSize, BfpSystemResult* outResult);
 
 		public enum BfpFileWatcherFlags : int32
@@ -110,9 +110,9 @@ namespace System
 
 		public function void BfpDirectoryChangeFunc(BfpFileWatcher* watcher, void* userData, BfpFileChangeKind changeKind, char8* directory, char8* fileName, char8* oldName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileWatcher* BfpFileWatcher_WatchDirectory(char8* path, BfpDirectoryChangeFunc callback, BfpFileWatcherFlags flags, void* userData, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFileWatcher_Release(BfpFileWatcher* fileWatcher);
 
 		public enum BfpProcessResult : int32
@@ -121,19 +121,19 @@ namespace System
 			InsufficientBuffer = (int)Result.InsufficientBuffer
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpProcess_IsRemoteMachine(char8* machineName);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpProcess* BfpProcess_GetById(char8* machineName, int32 processId, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_Enumerate(char8* machineName, BfpProcess** outProcesses, int32* inOutProcessesSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_Release(BfpProcess* process);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_GetMainWindowTitle(BfpProcess* process, char8* outTitle, int32* inOutTitleSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_GetProcessName(BfpProcess* process, char8* outName, int32* inOutNameSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int32 BfpProcess_GetProcessId(BfpProcess* process);
 
 		public enum BfpSpawnFlags : int32
@@ -166,29 +166,29 @@ namespace System
 			UnknownError = (int)Result.UnknownError
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpSpawn* BfpSpawn_Create(char8* targetPath, char8* args, char8* workingDir, char8* env, BfpSpawnFlags flags, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_Release(BfpSpawn* spawn);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_Kill(BfpSpawn* spawn, int32 exitCode, BfpKillFlags killFlags, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpSpawn_WaitFor(BfpSpawn* spawn, int waitMS, int* outExitCode, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_GetStdHandles(BfpSpawn* spawn, BfpFile** outStdIn, BfpFile** outStdOut, BfpFile** outStdErr);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpProcess_GetCurrentId();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
         public static extern BfpCritSect* BfpCritSect_Create();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
         public static extern void BfpCritSect_Release(BfpCritSect* critSect);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpCritSect_Enter(BfpCritSect* critSect);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpCritSect_TryEnter(BfpCritSect* critSect, int32 waitMS);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpCritSect_Leave(BfpCritSect* critSect);
 
 		public enum BfpEventFlags : int32
@@ -206,15 +206,15 @@ namespace System
 			BfpEventResult_NotSupported		= (int)Result.NotSupported
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpEvent* BfpEvent_Create(BfpEventFlags flags);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Release(BfpEvent* event);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Set(BfpEvent* event, bool requireManualReset);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Reset(BfpEvent* event, BfpEventResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpEvent_WaitFor(BfpEvent* event, int32 waitMS);
 
 		public enum BfpLibResult : int32
@@ -224,13 +224,13 @@ namespace System
 		    InsufficientBuffer  = (int)Result.InsufficientBuffer
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpDynLib* BfpDynLib_Load(char8* fileName);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDynLib_Release(BfpDynLib* lib);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDynLib_GetFilePath(BfpDynLib* lib, char8* outPath, int32* inOutPathSize, BfpLibResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void* BfpDynLib_GetProcAddress(BfpDynLib* lib, char8* name);
 
 		public enum BfpFileResult : int32
@@ -249,19 +249,19 @@ namespace System
 			NotEmpty				= (int)Result.NotEmpty
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Create(char8* name, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Rename(char8* oldName, char8* newName, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Delete(char8* name, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_GetCurrent(char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_SetCurrent(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpDirectory_Exists(char8* path);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_GetSysDirectory(BfpSysDirectoryKind sysDirKind, char8* outPath, int32* inOutPathLen, BfpFileResult* outResult);
 
 		public enum BfpFileCreateKind : int32
@@ -330,45 +330,45 @@ namespace System
 			In
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFile* BfpFile_Create(char8* name, BfpFileCreateKind createKind, BfpFileCreateFlags createFlags, BfpFileAttributes createdFileAttrs, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFile* BfpFile_GetStd(BfpFileStdKind kind, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Release(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpFile_Write(BfpFile* file, void* buffer, int size, int timeoutMS, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpFile_Read(BfpFile* file, void* buffer, int size, int timeoutMS, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Flush(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpFile_GetFileSize(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpFile_Seek(BfpFile* file, int64 offset, BfpFileSeekKind seekKind);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Truncate(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFile_GetTime_LastWrite(char8* path);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileAttributes BfpFile_GetAttributes(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_SetAttributes(char8* path, BfpFileAttributes attribs, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Copy(char8* oldPath, char8* newPath, BfpFileCopyKind copyKind, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Rename(char8* oldPath, char8* newPath, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Delete(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpFile_Exists(char8* path);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetTempPath(char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetTempFileName(char8* outName, int32* inOutNameSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetFullPath(char8* inPath, char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetActualPath(char8* inPath, char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
 
 		public enum BfpFindFileFlags : int32
@@ -378,21 +378,21 @@ namespace System
 			Directories = 2,
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFindFileData* BfpFindFileData_FindFirstFile(char8* path, BfpFindFileFlags flags, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpFindFileData_FindNextFile(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFindFileData_GetFileName(BfpFindFileData* findData, char8* outName, int32* inOutNameSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_LastWrite(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_Created(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_Access(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileAttributes BfpFindFileData_GetFileAttributes(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFindFileData_Release(BfpFindFileData* findData);
 
 		public enum BfpSysDirectoryKind : int32

+ 139 - 139
BeefLibs/corlib/src/Windows.bf

@@ -79,7 +79,7 @@ namespace System
 				}
 			}
 
-			[Import("ole32.lib"), CLink, StdCall]
+			[Import("ole32.lib"), CLink, CallingConvention(.Stdcall)]
 			public static extern HResult CoCreateInstanceFromApp(ref Guid clsid, COM_IUnknown* unkOuter, ClsContext clsCtx, void* reserved, uint32 count, MULTI_QI* result);
 
 			struct MULTI_QI
@@ -89,10 +89,10 @@ namespace System
 				public HResult mHR;
 			}
 
-			[Import("ole32.lib"), CLink, StdCall]
+			[Import("ole32.lib"), CLink, CallingConvention(.Stdcall)]
 			public static extern HResult CoCreateInstance(ref Guid clsId, COM_IUnknown* unkOuter, ClsContext clsCtx, ref Guid iid, void** result);
 
-			[Import("ole32.lib"), CLink, StdCall]
+			[Import("ole32.lib"), CLink, CallingConvention(.Stdcall)]
 			public static extern void CoTaskMemFree(void* ptr);
 		}
 
@@ -1107,19 +1107,19 @@ namespace System
 		    TRUSTEE_W    Trustee;
 		}
 
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetFileVersionInfoW(char16* lptstrFilename, uint32 dwHandle, uint32 dwLen, void* lpData);
 
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetFileVersionInfoSizeW(char16* lptstrFilename, out uint32 lpdwHandle);
 
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool VerQueryValueW(void* pBlock, char16* lpSubBlock, ref void* lplpBuffer, out int32 puLen);
 
-		[Import("version.lib"), CLink, StdCall]
+		[Import("version.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 VerLanguageNameW(uint32  wLang, char16* szLang, uint32 cchLang);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetNamedSecurityInfoW(
 		  char16*              pObjectName,
 		  SE_OBJECT_TYPE       ObjectType,
@@ -1131,7 +1131,7 @@ namespace System
 		  SECURITY_DESCRIPTOR* *ppSecurityDescriptor
 		);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern void BuildExplicitAccessWithNameW(
 		  EXPLICIT_ACCESS_W* pExplicitAccess,
 		  char16*             pTrusteeName,
@@ -1140,7 +1140,7 @@ namespace System
 		  uint32              Inheritance
 		);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 SetEntriesInAclW(
 		  uint32              cCountOfExplicitEntries,
 		  EXPLICIT_ACCESS_W* pListOfExplicitEntries,
@@ -1148,7 +1148,7 @@ namespace System
 		  ACL**           	 NewAcl
 		);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 SetNamedSecurityInfoW(
 		  char16*              pObjectName,
 		  SE_OBJECT_TYPE       ObjectType,
@@ -1159,282 +1159,282 @@ namespace System
 		  ACL*                 pSacl
 		);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void LocalFree(void* ptr);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetTimeZoneInformation(out TimeZoneInformation dynamicTimeZoneInformation);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetDynamicTimeZoneInformation(out DynamicTimeZoneInformation dynamicTimeZoneInformation);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegOpenKeyExW(HKey hKey, char16* lpSubKey, uint32 ulOptions, uint32 samDesired, out HKey phkResult);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegOpenKeyExA(HKey hKey, char8* lpSubKey, uint32 ulOptions, uint32 samDesired, out HKey phkResult);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegCreateKeyExW(HKey hKey, char16* lpSubKey, uint32 reserved, char16* lpClass, uint32 dwOptions, uint32 samDesired,
 			SecurityAttributes* lpSecurityAttributes, out HKey phkResult, uint32* lpdwDisposition);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegCreateKeyExA(HKey hKey, char8* lpSubKey, uint32 reserved, char8* lpClass, uint32 dwOptions, uint32 samDesired,
 			SecurityAttributes* lpSecurityAttributes, out HKey phkResult, uint32* lpdwDisposition);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegCloseKey(HKey hKey);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegDeleteKeyW(HKey hKey, char16* lpSubKey);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegDeleteKeyA(HKey hKey, char8* lpSubKey);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegDeleteValueW(HKey hKey, char16* lpSubKey);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegDeleteValueA(HKey hKey, char8* lpSubKey);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegQueryValueExW(HKey hKey, char16* lpValueName, uint32* lpReserved, uint32* lpType, void* lpData, uint32* lpcbData);
 		
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegQueryValueExA(HKey hKey, char8* lpValueName, uint32* lpReserved, uint32* lpType, void* lpData, uint32* lpcbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegEnumValueW(HKey hKey, int32 dwIndex, char16* lpValueName, uint32* lpcchValueName, uint32* lpReserved, uint32* lpType, void* lpData, uint32* lpcbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegEnumValueA(HKey hKey, int32 dwIndex, char8* lpValueName, uint32* lpcchValueName, uint32* lpReserved, uint32* lpType, void* lpData, uint32* lpcbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegGetValueW(HKey hkey, char16* lpSubKey, char16* lpValue, uint32 dwFlags, uint32* pdwType, void* pvData, uint32* pcbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegGetValueA(HKey hkey, char8* lpSubKey, char8* lpValue, uint32 dwFlags, uint32* pdwType, void* pvData, uint32* pcbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegSetValueExW(HKey hkey, char16* lpValue, uint32 reserved, uint32 dwType, void* pvData, uint32 cbData);
 
-		[Import("advapi32.lib"), CLink, StdCall]
+		[Import("advapi32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 RegSetValueExA(HKey hkey, char8* lpValue, uint32 reserved, uint32 dwType, void* pvData, uint32 cbData);
 
-		[Import("shell32.lib"), CLink, StdCall]
+		[Import("shell32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 SHGetSpecialFolderLocation(HWnd hwnd, int32 csidl, ref int ppidl);
 
-		[Import("shell32.lib"), CLink, StdCall]
+		[Import("shell32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern bool SHGetPathFromIDList(int pidl, char8* path);
 
-		[Import("shell32.lib"), CLink, StdCall]
+		[Import("shell32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int SHBrowseForFolder(ref BrowseInfo bi);
 
-		[Import("shell32.lib"), CLink, StdCall]
+		[Import("shell32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern COM_IUnknown.HResult SHCreateItemFromParsingName(char16* pszPath, COM_IBindCtx *pbc, Guid riid, void **ppv);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetLastError();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetExitCodeProcess(ProcessHandle process, out int32 exitCode);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetExitCodeThread(Handle process, out int32 exitCode);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 ResumeThread(Handle thread);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern ProcessHandle GetCurrentProcess();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetCurrentProcessId();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern ProcessHandle OpenProcess(int32 desiredAccess, IntBool inheritHandle, int32 processId);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern Handle CreateRemoteThread(ProcessHandle process, SecurityAttributes* threadAttributes, int stackSize, void* startAddress, void* parameter, int32 creationFlags, int32* threadId);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool WriteProcessMemory(ProcessHandle process, void* baseAddress, void* buffer, int size, int* numberOfBytesWritten);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void* GetProcAddress(HModule module, char8* procName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void* VirtualAllocEx(ProcessHandle process, void* address, int size, int32 allocationType, int32 protect);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void* VirtualFreeEx(ProcessHandle process, void* address, int size, int32 allocationType);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern FileHandle GetStdHandle(int32 stdHandle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern Handle ShellExecuteW(Handle hwnd, char16* operation, char16* file, char16* parameters, char16* directory, int32 showCmd); 
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern Handle ShellExecuteA(Handle hwnd, char8* operation, char8* file, char8* parameters, char8* directory, int32 showCmd); 
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool ShellExecuteExA(ShellExecuteInfo* shellExecuteInfo); 
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void GetStartupInfoA(StartupInfo* startupInfo);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CreateProcessW(char16* applicationName, char16* commandLine, SecurityAttributes* processAttributes, SecurityAttributes* threadAttributes,
         	IntBool inheritHandles, int32 creationFlags, void* environment, char16* currentDirectory, StartupInfo* startupInfo, ProcessInformation* processInformation);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CreateProcessA(char8* applicationName, char8* commandLine, SecurityAttributes* processAttributes, SecurityAttributes* threadAttributes,
         	IntBool inheritHandles, int32 creationFlags, void* environment, char8* currentDirectory, StartupInfo* startupInfo, ProcessInformation* processInformation);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool TerminateProcess(ProcessHandle process);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CreatePipe(out Handle readPipe, out Handle writePipe, SecurityAttributes* pipeAttributes, int32 size);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern Handle CreateNamedPipeA(char8* lpName, uint32 dwOpenMode, uint32 dwPipeMode, uint32 nMaxInstances, uint32 nOutBufferSize, uint32 nInBufferSize,
    			uint32 nDefaultTimeOut, SecurityAttributes* lpSecurityAttributes);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool ConnectNamedPipe(Handle handle, Overlapped* overlapped);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CallNamedPipeA(char8* name, void* inBuffer, int32 inBufferSize, void* outBuffer, int32 outBufferSize, int32* bytesRead, int32 timeOut);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool DisconnectNamedPipe(Handle handle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern EventHandle CreateEventA(SecurityAttributes* eventAttribuetes, IntBool manualReset, IntBool initialState, char8* name);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool SetEvent(EventHandle eventHandle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool ResetEvent(EventHandle eventHandle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 WaitForSingleObject(Handle handle, int32 milliseconds);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 WaitForMultipleObjects(int32 count, Handle* handles, IntBool waitAll, int32 milliseconds);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
         public static extern IOCompletionHandle CreateIoCompletionPort(FileHandle fileHandle, IOCompletionHandle existingCompletionPort, int completionKey, int32 numberOfConcurrentThreads);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetQueuedCompletionStatus(IOCompletionHandle completionPort, out int32 numberOfBytes, out int completionKey, out Overlapped* overlapped, int32 milliseconds);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool PostQueuedCompletionStatus(IOCompletionHandle completionPort, int32 numberOfBytes, int completionKey, Overlapped* overlapped);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool DuplicateHandle(Handle sourceProcessHandle, Handle sourceHandle, Handle targetProcessHandle, Handle* targetHandle, int32 desiredAccess, IntBool inheritHandle, int32 options);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CloseHandle(Handle handle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetFileType(FileHandle handle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetFileSize(FileHandle handle, int32* sizeHigh);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern FileHandle CreateFileA(char8* lpFileName,
 		            int32 dwDesiredAccess, System.IO.FileShare dwShareMode,
 		            SecurityAttributes* securityAttrs, System.IO.FileMode dwCreationDisposition,
 		            int32 dwFlagsAndAttributes, Handle hTemplateFile);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern FileHandle CreateFileW(char16* lpFileName,
                     int32 dwDesiredAccess, System.IO.FileShare dwShareMode,
                     SecurityAttributes* securityAttrs, System.IO.FileMode dwCreationDisposition,
                     int32 dwFlagsAndAttributes, Handle hTemplateFile);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetWindowsDirectoryW(char16* lpBuffer, uint32 uSize);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetWindowsDirectoryA(char8* lpBuffer, uint32 uSize);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CreateDirectoryW(char16* pathName, SecurityAttributes* securityAttributes);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CreateDirectoryA(char8* pathName, SecurityAttributes* securityAttributes);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool RemoveDirectoryW(char16* pathName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool RemoveDirectoryA(char8* pathName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool DeleteFileW(char16* pathName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool DeleteFileA(char8* pathName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CopyFileW(char16* srcName, char16* dstName, IntBool failIfExists);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool CopyFileA(char8* srcName, char8* dstName, IntBool failIfExists);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool MoveFileW(char16* srcName, char16* dstName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool MoveFileA(char8* srcName, char8* dstName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 ReadFile(Handle handle, uint8* bytes, int32 numBytesToRead, out int32 numBytesRead, Overlapped* overlapped);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 WriteFile(Handle handle, uint8* bytes, int32 numBytesToWrite, out int32 numBytesWritten, Overlapped* overlapped);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern FindHandle FindFirstFileW(char16* fileName, ref NativeFindData findFileData);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool FindNextFileW(FindHandle findHandle, ref NativeFindData findFileData);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool FindClose(FindHandle findHandle);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetFileAttributesExW(char16* name, int32 fileInfoLevel, FileAttributeData* fileInformation);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool SetFileAttributesW(char16* name, int32 attribs);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 MessageBoxA(HWnd hWnd, char8* text, char8* caption, int32 type);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 MessageBoxW(HWnd hWnd, char16* text, char16* caption, int32 type);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 SetErrorMode(int32 errorMode);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd GetActiveWindow();
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd SetActiveWindow(HWnd wnd);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int CallWindowProcA(int wndProc, HWnd hWnd, int32 msg, int wParam, int lParam);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int CallWindowProcW(int wndProc, HWnd hWnd, int32 msg, int wParam, int lParam);
 
 		public static int GetWindowLong(HWnd hWnd, int32 nIndex)
@@ -1450,10 +1450,10 @@ namespace System
 		}
 
 #if BF32
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int GetWindowLongA(int hWnd, int nIndex);
 #else
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int GetWindowLongPtrW(int hWnd, int32 nIndex);
 #endif
 
@@ -1467,118 +1467,118 @@ namespace System
 		}
 
 #if BF32
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int SetWindowLongA(int hWnd, int nIndex, int value);
 #else
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int SetWindowLongPtrW(int hWnd, int32 nIndex, int value);
 #endif
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool PostMessageW(HWnd hWnd, int32 msg, int wParam, int lParam);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 SendMessageW(HWnd hWnd, int32 msg, int wParam, int lParam);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 SendMessageTimeoutW(HWnd hWnd, int32 msg, int wParam, int lParam, int32 flags, int32 timeout, int32* result);
 
-		[Import("user32.lib "), CLink, StdCall]
+		[Import("user32.lib "), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd SetFocus(HWnd hWnd);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool EnumWindows(void* callback, void* extraData);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd GetWindow(HWnd hWnd, int32 uCmd);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd FindWindowW(char16* className, char16* windowName);
 		
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern HWnd FindWindowA(char8* className, char8* windowName);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool IsWindowVisible(HWnd hWnd);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetWindowTextLengthW(HWnd hWnd);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetWindowTextW(HWnd hWnd, char16* ptr, int32 length);
 		
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetWindowTextA(HWnd hWnd, char8* ptr, int32 length);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 GetWindowThreadProcessId(HWnd handle, out int32 processId);
 
-		[Import("comdlg32.lib"), CLink, StdCall]
+		[Import("comdlg32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetOpenFileNameW(ref OpenFileName ofn);
 
-		[Import("comdlg32.lib"), CLink, StdCall]
+		[Import("comdlg32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetSaveFileNameW(ref OpenFileName ofn);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HModule GetModuleHandleW(char16* modName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HModule GetModuleHandleA(char8* modName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetTempFileNameW(char16* tmpPath, char16* prefix, uint32 uniqueIdOrZero, char16* tmpFileName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetTempFileNameA(char8* tmpPath, char8* prefix, uint32 uniqueIdOrZero, char8* tmpFileName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetTempPathW(int32 bufferLen, char16* buffer);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetComputerNameA(char8* buffer, ref int32 size);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 NtQuerySystemInformation(int32 query, void* dataPtr, int32 size, out int32 returnedSize);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool ReadDirectoryChangesW(FileHandle handle, uint8* buffer, int32 bufferLength, IntBool watchSubtree, NotifyFilters notifyFilter, 
         	out int32 bytesReturned, Overlapped* overlapped, void* completionRoutine);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 SetFilePointer(FileHandle handle, int32 distanceToMove, int32* distanceToMoveHigh, int32 moveMethod);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool SHGetFileInfoW(char16* pszPath, uint32 fileAttributes, SHFileInfo* psfi, uint32 cbFileInfo, uint32 flags);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern char16* GetEnvironmentStringsW();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void FreeEnvironmentStringsW(char16* ptr);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool GetFileMUIPath(uint32 dwFlags, char16* pcwszFilePath, char16* pwszLanguage, uint32* pcchLanguage,
 			char16* pwszFileMUIPath, uint32* pcchFileMUIPath, uint64* pululEnumerator);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool SetDllDirectoryW(char16* libFileName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HInstance LoadLibraryW(char16* libFileName);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HInstance LoadLibraryA(char8* libFileName);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HInstance LoadLibraryExW(char16* libFileName, HModule hFile, uint32 dwFlags);
 		
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern HInstance LoadLibraryExA(char8* libFileName, HModule hFile, uint32 dwFlags);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern IntBool FreeLibrary(HModule module);
 
-		[Import("user32.lib"), CLink, StdCall]
+		[Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern int32 LoadStringW(HInstance hInstance, uint32 uID, char16* lpBuffer, int32 cchBufferMax);
 
 		public static Result<FileHandle, FileOpenError> SafeCreateFile(String lpFileName,

+ 13 - 13
BeefTools/DocPrep/src/Program.bf

@@ -5,43 +5,43 @@ namespace DocPrep
 {
 	class Program
 	{
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* BfSystem_Create();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_Delete(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* BfSystem_CreateParser(void* bfSystem, void* bfProject);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* BfSystem_CreatePassInstance(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfPassInstance_Delete(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_DeleteParser(void* bfSystem, void* bfParser);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfParser_SetSource(void* bfParser, char8* data, int32 length, char8* fileName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BfParser_Parse(void* bfParser, void* bfPassInstance, bool compatMode);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BfParser_Reduce(void* bfParser, void* bfPassInstance);
 
-		[StdCall, CLink]        
+		[CallingConvention(.Stdcall), CLink]        
 		static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping);
 
-		[StdCall, CLink]        
+		[CallingConvention(.Stdcall), CLink]        
 		static extern char8* BfParser_DocPrep(void* bfParser);
 
-		/*[StdCall, CLink]        
+		/*[CallingConvention(.Stdcall), CLink]        
 		static extern char8* BfParser_Prep*/
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* BfSystem_CreateProject(void* bfSystem, char8* projectName);
 
 		String mSrcDirPath;

File diff suppressed because it is too large
+ 313 - 313
BeefTools/MemProfiler/FMod.bf


+ 1 - 1
IDE/mintest/minlib/src/System/Object.bf

@@ -359,7 +359,7 @@ namespace System
 			}
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 ftoa(float val, char8* str);
 
 		static extern int32 ToString(float val, char8* str);

+ 70 - 70
IDE/mintest/minlib/src/System/Platform.bf

@@ -44,21 +44,21 @@ namespace System
 			TempFileError = (int)Result.TempFileError
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_TickCount();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSystem_GetEnvironmentStrings(char8* outStr, int32* inOutStrSize, BfpSystemResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedExchange32(uint32* ptr, uint32 val); // Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedExchange64(uint64* ptr, uint64 val);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedExchangeAdd32(uint32* ptr, uint32 val); // Returns the initial value in 'ptr'
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedExchangeAdd64(uint64* ptr, uint64 val);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint32 BfpSystem_InterlockedCompareExchange32(uint32* ptr, uint32 oldVal, uint32 newVal);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern uint64 BfpSystem_InterlockedCompareExchange64(uint64* ptr, uint64 oldVal, uint64 newVal);
 
 		public enum BfpFileWatcherFlags : int32
@@ -78,9 +78,9 @@ namespace System
 
 		public function void BfpDirectoryChangeFunc(BfpFileWatcher* watcher, void* userData, BfpFileChangeKind changeKind, char8* directory, char8* fileName, char8* oldName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileWatcher* BfpFileWatcher_WatchDirectory(char8* path, BfpDirectoryChangeFunc callback, BfpFileWatcherFlags flags, void* userData, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFileWatcher_Release(BfpFileWatcher* fileWatcher);
 
 		public enum BfpProcessResult
@@ -89,19 +89,19 @@ namespace System
 			InsufficientBuffer = (int)Result.InsufficientBuffer
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpProcess_IsRemoteMachine(char8* machineName);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpProcess* BfpProcess_GetById(char8* machineName, int32 processId, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_Enumerate(char8* machineName, BfpProcess** outProcesses, int32* inOutProcessesSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_Release(BfpProcess* process);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_GetMainWindowTitle(BfpProcess* process, char8* outTitle, int32* inOutTitleSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpProcess_GetProcessName(BfpProcess* process, char8* outName, int32* inOutNameSize, BfpProcessResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int32 BfpProcess_GetProcessId(BfpProcess* process);
 
 		public enum BfpSpawnFlags
@@ -134,29 +134,29 @@ namespace System
 			UnknownError = (int)Result.UnknownError
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpSpawn* BfpSpawn_Create(char8* targetPath, char8* args, char8* workingDir, char8* env, BfpSpawnFlags flags, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_Release(BfpSpawn* spawn);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_Kill(BfpSpawn* spawn, int32 exitCode, BfpKillFlags killFlags, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpSpawn_WaitFor(BfpSpawn* spawn, int waitMS, int* outExitCode, BfpSpawnResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpSpawn_GetStdHandles(BfpSpawn* spawn, BfpFile** outStdIn, BfpFile** outStdOut, BfpFile** outStdErr);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpProcess_GetCurrentId();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
         public static extern BfpCritSect* BfpCritSect_Create();
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
         public static extern void BfpCritSect_Release(BfpCritSect* critSect);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpCritSect_Enter(BfpCritSect* critSect);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpCritSect_TryEnter(BfpCritSect* critSect, int32 waitMS);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpCritSect_Leave(BfpCritSect* critSect);
 
 		public enum BfpEventFlags : int32
@@ -174,15 +174,15 @@ namespace System
 			BfpEventResult_NotSupported		= (int)Result.NotSupported
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpEvent* BfpEvent_Create(BfpEventFlags flags);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Release(BfpEvent* event);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Set(BfpEvent* event, bool requireManualReset);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpEvent_Reset(BfpEvent* event, BfpEventResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpEvent_WaitFor(BfpEvent* event, int32 waitMS);
 
 		public enum BfpLibResult : int32
@@ -192,13 +192,13 @@ namespace System
 		    InsufficientBuffer  = (int)Result.InsufficientBuffer
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpDynLib* BfpDynLib_Load(char8* fileName);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDynLib_Release(BfpDynLib* lib);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDynLib_GetFilePath(BfpDynLib* lib, char8* outPath, int32* inOutPathSize, BfpLibResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void* BfpDynLib_GetProcAddress(BfpDynLib* lib, char8* name);
 
 		public enum BfpFileResult : int32
@@ -216,17 +216,17 @@ namespace System
 			InsufficientBuffer		= (int)Result.InsufficientBuffer
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Create(char8* name, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Rename(char8* oldName, char8* newName, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_Delete(char8* name, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_GetCurrent(char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpDirectory_SetCurrent(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpDirectory_Exists(char8* path);
 
 		public enum BfpFileCreateKind : int32
@@ -288,43 +288,43 @@ namespace System
 			IfNewer,
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFile* BfpFile_Create(char8* name, BfpFileCreateKind createKind, BfpFileCreateFlags createFlags, BfpFileAttributes createdFileAttrs, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Release(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpFile_Write(BfpFile* file, void* buffer, int size, int timeoutMS, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int BfpFile_Read(BfpFile* file, void* buffer, int size, int timeoutMS, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Flush(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpFile_GetFileSize(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int64 BfpFile_Seek(BfpFile* file, int64 offset, BfpFileSeekKind seekKind);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Truncate(BfpFile* file);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFile_GetTime_LastWrite(char8* path);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileAttributes BfpFile_GetAttributes(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_SetAttributes(char8* path, BfpFileAttributes attribs, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Copy(char8* oldPath, char8* newPath, BfpFileCopyKind copyKind, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Rename(char8* oldPath, char8* newPath, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_Delete(char8* path, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpFile_Exists(char8* path);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetTempPath(char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetTempFileName(char8* outName, int32* inOutNameSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetFullPath(char8* inPath, char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFile_GetActualPath(char8* inPath, char8* outPath, int32* inOutPathSize, BfpFileResult* outResult);
 
 		public enum BfpFindFileFlags : int32
@@ -334,21 +334,21 @@ namespace System
 			Directories = 2,
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFindFileData* BfpFindFileData_FindFirstFile(char8* path, BfpFindFileFlags flags, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern bool BfpFindFileData_FindNextFile(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFindFileData_GetFileName(BfpFindFileData* findData, char8* outName, int32* inOutNameSize, BfpFileResult* outResult);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_LastWrite(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_Created(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpTimeStamp BfpFindFileData_GetTime_Access(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern BfpFileAttributes BfpFindFileData_GetFileAttributes(BfpFindFileData* findData);
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void BfpFindFileData_Release(BfpFindFileData* findData);
 
 		public enum SysDirectory : int32

+ 8 - 8
IDE/mintest/src/main.bf

@@ -42,28 +42,28 @@ namespace Hey.Dude.Bro
 	{
 		static int gApzong = 123;
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void OutputDebugStringA(char8* str);
 
-		/*[CLink, StdCall]
+		/*[CLink, CallingConvention(.Stdcall)]
 		internal static extern void OutputDebugStringW(char16* str);*/
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 GetTickCount();
 
-		[Import("winmm.lib"), CLink, StdCall]
+		[Import("winmm.lib"), CLink, CallingConvention(.Stdcall)]
 		public static extern uint32 timeGetTime();
 
 		/*public const String cDllName = @"C:\proj\TestDLL2\x64\Debug\TestDLL2.dll";
-		[DllImport(cDllName), CLink, StdCall]
+		[DllImport(cDllName), CLink, CallingConvention(.Stdcall)]
 		public static extern void Test2(int a, int b, int c, int d);*/
 
-		//[DllImport(cDllName), CLink, StdCall] public static extern void Test3();
+		//[DllImport(cDllName), CLink, CallingConvention(.Stdcall)] public static extern void Test3();
 
-		//[DllImport(@"C:\Beef\IDE\dist\IDEHelper64_d.dll"), CLink, StdCall]
+		//[DllImport(@"C:\Beef\IDE\dist\IDEHelper64_d.dll"), CLink, CallingConvention(.Stdcall)]
 		//public static extern void BFTest();
 
-		/*[StdCall, CLink]
+		/*[CallingConvention(.Stdcall), CLink]
 		public static extern void ExTest2();*/
 
 		//[DllImport(@"\beef\ide\dist\TestDLL.dll"), CLink]

+ 14 - 14
IDE/src/Clang/ClangCompiler.bf

@@ -43,46 +43,46 @@ namespace IDE.Clang
         {
             public List<String> mFileRefs = new List<String>();
         }
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* ClangHelper_Create(bool isForResolve);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void ClangHelper_Delete(void* clangHelper);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void ClangHelper_AddTranslationUnit(void* clangHelper, char8* fileName, char8* headerPrefix, char8* clangArgs, void* elementTypeArray, int32 char8Len);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void ClangHelper_RemoveTranslationUnit(void* clangHelper, char8* fileName);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* ClangHelper_Classify(void* clangHelper, char8* fileName, void* elementTypeArray, int32 char8Len, int32 cursorIdx, int32 errorLookupTextIdx,bool ignoreErrors);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* ClangHelper_Autocomplete(void* clangHelper, char8* fileName, void* elementTypeArray, int32 char8Len, int32 cursorIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* ClangHelper_FindDefinition(void* clangHelper, char8* fileName, int32 defPos, out int32 outDefLine, out int32 outDefColumn);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* ClangHelper_GetNavigationData(void* clangHelper, char8* fileName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* ClangHelper_GetCurrentLocation(void* clangHelper, char8* fileName, int32 defPos);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* ClangHelper_DetermineFilesReferenced(void* clangHelper, char8* fileName);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void CDep_ClearCache();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void CDep_Shutdown();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* CDep_DetermineFilesReferenced(char8* fileName, String cArgs);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 CDep_GetIncludePosition(char8* sourceFileName, char8* sourceContent, char8* headerFileName, String cArgs);
 
 		//static int sRefCount = 0;

+ 5 - 5
IDE/src/Clang/ClangHelper.bf

@@ -12,19 +12,19 @@ namespace IDE.Clang
 {
     public class ClangHelper : CompilerBase
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern IntPtr ClangHelper_Create();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void ClangHelper_Delete(IntPtr clangHelper);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern IntPtr ClangHelper_Classify(IntPtr clangHelper, char* fileName, void* elementTypeArray, int charLen, int cursorIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern IntPtr ClangHelper_FindDefinition(IntPtr clangHelper, char* fileName, int line, int column, out int outDefLine, out int outDefColumn);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern IntPtr ClangHelper_Autocomplete(IntPtr clangHelper, char* fileName, int cursorIdx);
 
         IntPtr mNativeClangHelper;

+ 30 - 30
IDE/src/Compiler/BfCompiler.bf

@@ -39,72 +39,72 @@ namespace IDE.Compiler
 			NoFramePointerElim = 0x20000,
 		}
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfCompiler_Compile(void* bfCompiler, void* bfPassInstance, char8* outputDirectory);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BfCompiler_ClearResults(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BfCompiler_VerifyTypeName(void* bfCompiler, char8* typeName, int32 cursorPos);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfCompiler_ClassifySource(void* bfCompiler, void* bfPassInstance, void* bfParser, void* bfResolvePassData, void* char8Data);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfCompiler_GetAutocompleteInfo(void* bfCompiler);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfCompiler_GetSymbolReferences(void* bfCompiler, void* bfPassInstance, void* bfResolvePassData);        
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfCompiler_Cancel(void* bfCompiler);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfCompiler_ClearCompletionPercentage(void* bfCompiler);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern float BfCompiler_GetCompletionPercentage(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 BfCompiler_GetCompileRevision(void* bfCompiler);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfCompiler_Delete(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_ClearBuildCache(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_SetBuildValue(void* bfCompiler, char8* cacheDir, char8* key, char8* value);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_GetBuildValue(void* bfCompiler, char8* cacheDir, char8* key);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_WriteBuildCache(void* bfCompiler, char8* cacheDir);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfCompiler_GetOutputFileNames(void* bfCompiler, void* bfProject, out bool hadOutputChanges);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_GetUsedOutputFileNames(void* bfCompiler, void* bfProject, bool flushQueuedHotFiles, out bool hadOutputChanges);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_GetTypeDefList(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_GetTypeDefMatches(void* bfCompiler, char8* searchStr);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_GetTypeDefInfo(void* bfCompiler, char8* typeDefName);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfCompiler_SetOptions(void* bfCompiler,
             void* hotProject, int32 hotIdx, char8* targetTriple, int32 toolsetType, int32 simdSetting, int32 allocStackCount, int32 maxWorkerThreads,
             OptionFlags optionsFlags, char8* mallocName, char8* freeName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_ForceRebuild(void* bfCompiler);
 
 		public enum HotTypeFlags
@@ -115,10 +115,10 @@ namespace IDE.Compiler
 			Heap		= 4,
 		};
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool BfCompiler_GetHasHotPendingDataChanges(void* bfCompiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotCommit(void* bfCompiler);
 
 		public enum HotResolveFlags
@@ -127,22 +127,22 @@ namespace IDE.Compiler
 			HadDataChanges = 1
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotResolve_Start(void* bfCompiler, int32 flags);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotResolve_AddActiveMethod(void* bfCompiler, char8* methodName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotResolve_AddDelegateMethod(void* bfCompiler, char8* methodName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotResolve_ReportType(void* bfCompiler, int typeId, int usageKind);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfCompiler_HotResolve_ReportTypeRange(void* bfCompiler, char8* typeName, int usageKind);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfCompiler_HotResolve_Finish(void* bfCompiler);
 
         class SetPassInstanceCommand : Command

+ 18 - 18
IDE/src/Compiler/BfParser.bf

@@ -86,58 +86,58 @@ namespace IDE.Compiler
 			str.AppendF("Idx:{0}", mIdx);
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_DeleteParser(void* bfSystem, void* bfParser);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_SetSource(void* bfParser, char8* data, int32 length, char8* fileName);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_SetCharIdData(void* bfParser, uint8* data, int32 length);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfParser_SetHashMD5(void* bfParser, ref MD5Hash md5Hash);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_SetNextRevision(void* bfParser, void* nextParser);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_SetCursorIdx(void* bfParser, int32 cursorIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_SetAutocomplete(void* bfParser, int32 cursorIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_SetIsClassifying(void* bfParser);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_Parse(void* bfParser, void* bfPassInstance, bool compatMode);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_Reduce(void* bfParser, void* bfPassInstance);
 
-        [StdCall, CLink]        
+        [CallingConvention(.Stdcall), CLink]        
         static extern char8* BfParser_Format(void* bfParser, int32 formatEnd, int32 formatStart, out int32* outCharMapping);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfParser_GetDebugExpressionAt(void* bfParser, int32 cursorIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfParser_CreateResolvePassData(void* bfSystem, int32 resolveType);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfParser_BuildDefs(void* bfParser, void* bfPassInstance, void* bfResolvePassData, bool fullRefresh);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_RemoveDefs(void* bfParser);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_ClassifySource(void* bfParser, void* elementTypeArray, bool preserveFlags);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfParser_GenerateAutoCompletionFrom(void* bfParser, int32 srcPosition);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfParser_SetCompleteParse(void* bfParser);
 
 		public BfSystem mSystem;

+ 7 - 7
IDE/src/Compiler/BfPassInstance.bf

@@ -17,27 +17,27 @@ namespace IDE.Compiler
 			Classify
 		}
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfPassInstance_Delete(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfPassInstance_PopOutString(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfPassInstance_SetClassifierPassId(void* bfResolvePassData, uint8 classifierPassId);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 BfPassInstance_GetErrorCount(void* mNativeResolvePassData);        
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* BfPassInstance_GetErrorData(void* mNativeResolvePassData, int32 errorIdx, out int32 code, out bool isWarning,
             out bool isAfter, out bool isDeferred, out bool isWhileSpecializing, out bool isPersistent, out char8* projectName,
 			out char8* fileName, out int32 srcStart, out int32 srcEnd, int32* srcLine, int32* srcColumn, out int32 moreInfoCount);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfPassInstance_Error_GetMoreInfoData(void* mNativeResolvePassData, int32 errorIdx, int32 moreInfoIdx, out char8* fileName, out int32 srcStart, out int32 srcEnd, int32* srcLine, int32* srcColumn);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool BfPassInstance_HadSignatureChanges(void* mNativeResolvePassData);
 
         public class BfError

+ 5 - 5
IDE/src/Compiler/BfProject.bf

@@ -20,19 +20,19 @@ namespace IDE.Compiler
 			AsmOutput_ATT	= 0x40,
 		}
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfProject_Delete(void* nativeBfProject);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfProject_ClearDependencies(void* nativeBfProject);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfProject_AddDependency(void* nativeBfProject, void* nativeDepProject);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfProject_SetDisabled(void* nativeBfProject, bool disabled);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfProject_SetOptions(void* nativeBfProject, int32 targetType, char8* startupObject, char8* preprocessorMacros,
             int32 optLevel, int32 ltoType, int32 relocType, int32 picLevel, Flags flags);
 

+ 10 - 10
IDE/src/Compiler/BfResolvePassData.bf

@@ -7,36 +7,36 @@ namespace IDE.Compiler
 {
     public class BfResolvePassData
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_Delete(void* bfResolvePassData);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_SetLocalId(void* bfResolvePassData, int32 localId);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfResolvePassData_SetTypeGenericParamIdx(void* resolvePassData, int typeGenericParamIdx);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfResolvePassData_SetMethodGenericParamIdx(void* resolvePassData, int typeGenericParamIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_SetSymbolReferenceTypeDef(void* bfResolvePassData, char8* replaceStr);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_SetSymbolReferenceFieldIdx(void* bfResolvePassData, int32 fieldIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_SetSymbolReferenceMethodIdx(void* bfResolvePassData, int32 methodIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfResolvePassData_SetSymbolReferencePropertyIdx(void* bfResolvePassData, int32 propertyIdx);        
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfResolvePassData_SetDocumentationRequest(void* bfResolvePassData, char8* entryName);
 
         //
 
-        //[StdCall, CLink]
+        //[CallingConvention(.Stdcall), CLink]
         //static extern void* BfParser_CreateResolvePassData(void* bfSystem, int32 resolveType);
 
         public void* mNativeResolvePassData;

+ 24 - 24
IDE/src/Compiler/BfSystem.bf

@@ -9,77 +9,77 @@ namespace IDE.Compiler
 {
     public class BfSystem
     {
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_CheckLock(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_Create();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfSystem_Delete(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_ReportMemory(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void BfSystem_Update(void* bfSystem);        
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_CreatePassInstance(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfSystem_GetNamespaceSearch(void* bfSystem, char8* typeName, void* project);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_CreateProject(void* bfSystem, char8* projectName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_ClearTypeOptions(void* bfSystem);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfSystem_AddTypeOptions(void* bfSystem, char8* filter, int32 simdSetting, int32 optimizationLevel, int32 emitDebugInfo, int32 runtimeChecks,
             int32 initLocalVariables, int32 emitDynamicCastCheck, int32 emitObjectAccessCheck, int32 allocStackTraceDepth);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_CreateParser(void* bfSystem, void* bfProject);
         
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_CreateCompiler(void* bfSystem, bool isResolveOnly = false);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_RemoveDeletedParsers(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_RemoveOldParsers(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_RemoveOldData(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_NotifyWillRequestLock(void* bfSystem, int32 priority);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_Lock(void* bfSystem, int32 priority);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfSystem_PerfZoneStart(char8* name);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfSystem_PerfZoneEnd();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* BfSystem_Unlock(void* bfSystem);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfSystem_StartTiming();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfSystem_StopTiming();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         extern static void BfSystem_DbgPrintTimings();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		extern static void BfSystem_Log(void* bfSystem, char8* str);
 
         public void* mNativeBfSystem;

+ 20 - 20
IDE/src/Debugger/Breakpoint.bf

@@ -34,64 +34,64 @@ namespace IDE.Debugger
 			Disable
 		}
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Breakpoint_Delete(void* nativeBreakpoint);
         
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 Breakpoint_GetPendingHotBindIdx(void* nativeBreakpoint);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Breakpoint_HotBindBreakpoint(void* breakpoint, int32 lineNum, int32 hotIdx);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int Breakpoint_GetAddress(void* nativeBreakpoint, out void* linkedSibling);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool Breakpoint_SetCondition(void* nativeBreakpoint, char8* condition);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool Breakpoint_SetLogging(void* nativeBreakpoint, char8* logging, bool breakAfterLogging);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool Breakpoint_IsMemoryBreakpointBound(void* nativeBreakpoint);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern int32 Breakpoint_GetLineNum(void* nativeBreakpoint);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Breakpoint_Move(void* nativeBreakpoint, int32 wantLineNum, int32 wantColumn, bool rebindNow);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Breakpoint_MoveMemoryBreakpoint(void* nativeBreakpoint, int addr, int32 byteCount);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Breakpoint_Disable(void* nativeBreakpoint);        
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* Debugger_CreateBreakpoint(char8* fileName, int32 wantLineNum, int32 wantColumn, int32 instrOffset);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void* Debugger_CreateSymbolBreakpoint(char8* symbolName);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Breakpoint_Check(void* nativeBreakpoint);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Breakpoint_SetThreadId(void* nativeBreakpoint, int threadId);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 Breakpoint_GetHitCount(void* nativeBreakpoint);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern int32 Breakpoint_ClearHitCount(void* nativeBreakpoint);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Breakpoint_SetHitCountTarget(void* nativeBreakpoint, int hitCountTarget, HitCountBreakKind breakKind);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Debugger_GetActiveBreakpoint();
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Debugger_CreateMemoryBreakpoint(int addr, int32 byteCount);
 
         public void* mNativeBreakpoint;

+ 1 - 1
IDE/src/Debugger/Callbacks.bf

@@ -5,7 +5,7 @@ namespace Debugger
 {
 	static class Callbacks
 	{
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Debugger_SetCallbacks(void* callback);
 
 		public static void Init()

+ 78 - 78
IDE/src/Debugger/DebugManager.bf

@@ -112,238 +112,238 @@ namespace IDE.Debugger
 		public List<Breakpoint> mBreakpointList = new List<Breakpoint>();
 		public Dictionary<String, StepFilter> mStepFilterList = new Dictionary<String, StepFilter>();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Create();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Delete();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 Debugger_GetAddrSize();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_FullReportMemory();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_OpenMiniDump(char8* filename);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_OpenFile(char8* launchPath, char8* targetPath, char8* args, char8* workingDir, void* envBlockPtr, int32 envBlockLen);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_Attach(int32 processId, AttachFlags attachFlags);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Run();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_HotLoad(char8* objectFileNames, int32 hotIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_LoadDebugVisualizers(char8* fileName);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_StopDebugging();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Terminate();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Detach();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern RunState Debugger_GetRunState();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetCurrentException();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_Continue();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_BreakAll();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_StepInto(bool inAssembly);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_StepIntoSpecific(int addr);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_StepOver(bool inAssembly);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_StepOut(bool inAssembly);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetNextStatement(bool inAssembly, char8* fileName, int wantLineNumOrAsmAddr, int32 wantColumn);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_Update();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void* Debugger_CreateAddressBreakpoint(int address);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void* Debugger_CreateStepFilter(char8* filter, bool isGlobal, StepFilterKind stepFilterKind);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetDisplayTypes(char8* referenceId, IntDisplayType intDisplayType, MmDisplayType mmDisplayType);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_GetDisplayTypes(char8* referenceId, out IntDisplayType intDisplayType, out MmDisplayType mmDisplayType);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetDisplayTypeNames();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_EvaluateContinue();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_EvaluateContinueKeep();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_Evaluate(char8* expr, int32 callStackIdx, int32 cursorPos, int32 language, EvalExpressionFlags expressionFlags);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_EvaluateToAddress(char8* expr, int32 callStackIdx, int32 cursorPos);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_EvaluateAtAddress(char8* expr, int addr, int32 cursorPos);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetAutoExpressions(int32 callStackIdx, uint64 memoryRangeStart, uint64 memoryRangeLen);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetAutoLocals(int32 callStackIdx, bool showRegs);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_CompactChildExpression(char8* expr, char8* parentExpr, int32 callStackIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetCollectionContinuation(char8* continuationData, int32 callStackIdx, int32 count);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_ForegroundTarget();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void CallStack_Update();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void CallStack_Rehup();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 CallStack_GetCount();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 CallStack_GetRequestedStackFrameIdx();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 CallStack_GetBreakStackFrameIdx();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetCodeAddrInfo(int addr, out int32 hotIdx, out int32 defLineStart, out int32 defLineEnd, out int32 line, out int32 column);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_GetStackAllocInfo(int addr, out int threadId, int32* outStackIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* CallStack_GetStackFrameInfo(int32 stackFrameIdx, out int addr, out char8* outFile, out int32 hotIdx, out int32 defLineStart, out int32 defLineEnd, out int32 outLine, out int32 outColumn, out int32 outLanguage, out int32 outStackSize, out FrameFlags flags);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Callstack_GetStackFrameOldFileInfo(int32 stackFrameIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 CallStack_GetJmpState(int32 stackFrameIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int Debugger_GetStackFrameCalleeAddr(int32 stackFrameIdx);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* CallStack_GetStackMethodOwner(int32 stackFrameIdx, out int32 language);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetThreadInfo();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetActiveThread(int threadId);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int Debugger_GetActiveThread();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_FreezeThread(int threadId);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_ThawThread(int threadId);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_IsActiveThreadWaiting();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_PopMessage();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_HasMessages();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_FindCodeAddresses(char8* file, int32 line, int32 column, bool allowAutoResolve);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetAddressSourceLocation(int addr);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetAddressSymbolName(int addr, bool demangle);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_FindLineCallAddresses(int addr);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_DisassembleAt(int addr);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_ReadMemory(int addr, int size, uint8* data);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_WriteMemory(int addr, int size, uint8* data);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void* Debugger_StartProfiling(int threadId, char8* desc, int32 sampleRate);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void* Debugger_PopProfiler();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetSymSrvOptions(char8* symCacheDir, char8* symSrvStr, int32 flags);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_CancelSymSrv();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetModulesInfo();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern bool Debugger_HasPendingDebugLoads();
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 Debugger_LoadImageForModuleWith(char8* moduleName, char8* imageFileName);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 Debugger_LoadDebugInfoForModule(char8* moduleName);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern int32 Debugger_LoadDebugInfoForModuleWith(char8* moduleName, char8* debugFileName);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetStepOverExternalFiles(bool stepOverExternalFiles);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_InitiateHotResolve(int32 flags);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern char8* Debugger_GetHotResolveData(uint8* outTypeData, int32* outTypeDataSize);
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void Debugger_SetAliasPath(char8* origPath, char8* localPath);
 
 		public String mRunningPath ~ delete _;

+ 7 - 7
IDE/src/Debugger/Profiler.bf

@@ -12,25 +12,25 @@ namespace IDE.Debugger
 		public int mIdx;
 		public bool mIsManual;
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void* Profiler_Delete(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Profiler_Stop(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void Profiler_Clear(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* Profiler_GetThreadList(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* Profiler_GetOverview(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern bool Profiler_IsRunning(void* nativeProfiler);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* Profiler_GetCallTree(void* nativeProfiler, int32 threadId, bool reverse);
 
 		void* mNativeProfiler;

+ 1 - 1
IDE/src/Debugger/StepFilter.bf

@@ -19,7 +19,7 @@ namespace IDE.Debugger
         public bool mIsGlobal;
 		public StepFilterKind mKind;
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void StepFilter_Delete(char8* filter);
 
         public ~this()

+ 3 - 3
IDE/src/IDEApp.bf

@@ -529,9 +529,9 @@ namespace IDE
 			}
 		}
 
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void IDEHelper_ProgramStart();
-		[StdCall,CLink]
+		[CallingConvention(.Stdcall),CLink]
 		static extern void IDEHelper_ProgramDone();
 
         public this()
@@ -12915,7 +12915,7 @@ namespace IDE
         }
 
 #if BF_PLATFORM_WINDOWS
-        [Import("user32.lib"), CLink, StdCall]
+        [Import("user32.lib"), CLink, CallingConvention(.Stdcall)]
         public static extern bool MessageBeep(MessageBeepType type);
 #endif
     }

+ 1 - 1
IDE/src/Settings.bf

@@ -71,7 +71,7 @@ namespace IDE
 				ReadPaths("Lib64Paths", mLib64Paths);
 			}
 
-			[CLink, StdCall]
+			[CLink, CallingConvention(.Stdcall)]
 			static extern char8* VSSupport_Find();
 
 			public bool IsConfigured()

+ 5 - 5
IDE/src/SpellChecker.bf

@@ -10,19 +10,19 @@ namespace IDE
 {
     public class SpellChecker : CommandQueueManager
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void* SpellChecker_Create(char8* langPath);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void SpellChecker_Delete(void* nativeSpellchecker);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern bool SpellChecker_IsWord(void* nativeSpellchecker, char8* word);
 
-        [StdCall, CLink]        
+        [CallingConvention(.Stdcall), CLink]        
         static extern void SpellChecker_AddWord(void* nativeSpellchecker, char8* word);
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern char8* SpellChecker_GetSuggestions(void* spellChecker, char8* word);
 
         void* mNativeSpellChecker;

+ 2 - 2
IDE/src/Targets.bf

@@ -7,10 +7,10 @@ namespace IDE
 {
     public class Targets
     {
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Targets_Create();
 
-        [StdCall, CLink]
+        [CallingConvention(.Stdcall), CLink]
         static extern void Targets_Delete();
 
         public this()

+ 1 - 1
IDE/src/ui/SourceEditWidgetContent.bf

@@ -262,7 +262,7 @@ namespace IDE.ui
 			}
 		}
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern char8* BfDiff_DiffText(char8* text1, char8* text2);
 
 		struct TextLineSegment

+ 1 - 1
IDE/src/ui/SourceViewPanel.bf

@@ -1158,7 +1158,7 @@ namespace IDE.ui
                 bfCompiler.QueueDeferredResolveAll();
         }
 
-        //[StdCall, CLink]
+        //[CallingConvention(.Stdcall), CLink]
         //static extern char8* BfDiff_DiffText(char8* text1, char8* text2);
 
         public void DoFastClassify()

+ 2 - 2
IDE/src/util/BfLog.bf

@@ -4,10 +4,10 @@ namespace IDE.util
 {
 	class BfLog
 	{
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfLog_Log(char8* str);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		static extern void BfLog_LogDbg(char8* str);
 
 		public static void Log(StringView str, params Object[] strParams)

+ 7 - 7
IDE/src/util/Curl.bf

@@ -854,25 +854,25 @@ namespace CURL
 			HTTP2Stream,            /* 92 - stream error in HTTP/2 framing layer */
 		}
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* curl_easy_init();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int curl_easy_setopt(void* curl, int option, int optVal);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* curl_easy_duphandle(void* curl);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* curl_easy_cleanup(void* curl);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern int curl_easy_perform(void* curl);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* curl_easy_getinfo(void* curl, Option option, void* ptr);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		static extern void* curl_easy_reset(void* curl);
 
 		void* mCURL;

+ 6 - 6
IDE/src/util/Git.bf

@@ -190,10 +190,10 @@ namespace IDE.Util
 		}
 
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern void git_strarray_free(git_strarray *array);
 
-		[StdCall, CLink]
+		[CallingConvention(.Stdcall), CLink]
 		public static extern int32 git_strarray_copy(git_strarray *tgt, git_strarray *src);
 
 		/** Time in a signature */
@@ -604,16 +604,16 @@ namespace IDE.Util
 			public void* remote_cb_payload;
 		}
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 git_libgit2_init();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 git_libgit2_shutdown();
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern int32 git_clone(git_repository** repoOut, char8* url, char8* local_path, git_clone_options* options);
 
-		[CLink, StdCall]
+		[CLink, CallingConvention(.Stdcall)]
 		public static extern void git_repository_free(git_repository *repo);
 	}
 }

+ 2 - 2
IDE/src/util/Transfer.bf

@@ -97,7 +97,7 @@ namespace IDE.Util
 			UpdateBytesPerSecond();
 		}
 
-		[StdCall]
+		[CallingConvention(.Stdcall)]
 		static int Callback(void *p, int dltotal, int dlnow, int ultotal, int ulnow)
 		{
 			Transfer transfer = (Transfer)Internal.UnsafeCastToObject(p);
@@ -111,7 +111,7 @@ namespace IDE.Util
 			return 0;
 		}
 
-		[StdCall]
+		[CallingConvention(.Stdcall)]
 		static int Write(void* dataPtr, int size, int count, void* ctx)
 		{
 			Transfer transfer = (Transfer)Internal.UnsafeCastToObject(ctx);

Some files were not shown because too many files changed in this diff