diff --git a/src/CalcManager/CCalcManager.cpp b/src/CalcManager/CCalcManager.cpp index eab5ad20..efb1e834 100644 --- a/src/CalcManager/CCalcManager.cpp +++ b/src/CalcManager/CCalcManager.cpp @@ -10,7 +10,8 @@ #include #include -#if !defined(__EMSCRIPTEN__) +#if !DEBUG +#if defined(_WINDOWS_) #include #include @@ -25,23 +26,28 @@ VOID _DBGPRINT(LPCWSTR kwszFunction, INT iLineNumber, LPCWSTR kwszDebugFormatStr va_start(args, kwszDebugFormatString); - cbFormatString = _scwprintf(L"[%s:%d] ", kwszFunction, iLineNumber) * sizeof(WCHAR); - cbFormatString += _vscwprintf(kwszDebugFormatString, args) * sizeof(WCHAR) + 2; + cbFormatString = _scwDBGPRINT(L"[%s:%d] ", kwszFunction, iLineNumber) * sizeof(WCHAR); + cbFormatString += _vscwDBGPRINT(kwszDebugFormatString, args) * sizeof(WCHAR) + 2; /* Depending on the size of the format string, allocate space on the stack or the heap. */ wszDebugString = (PWCHAR)_malloca(cbFormatString); /* Populate the buffer with the contents of the format string. */ - StringCbPrintfW(wszDebugString, cbFormatString, L"[%s:%d] ", kwszFunction, iLineNumber); + StringCbDBGPRINTW(wszDebugString, cbFormatString, L"[%s:%d] ", kwszFunction, iLineNumber); StringCbLengthW(wszDebugString, cbFormatString, &st_Offset); - StringCbVPrintfW(&wszDebugString[st_Offset / sizeof(WCHAR)], cbFormatString - st_Offset, kwszDebugFormatString, args); + StringCbVDBGPRINTW(&wszDebugString[st_Offset / sizeof(WCHAR)], cbFormatString - st_Offset, kwszDebugFormatString, args); OutputDebugStringW(wszDebugString); _freea(wszDebugString); va_end(args); } +#elif defined(__EMSCRIPTEN__) +#define DBGPRINT(kwszDebugFormatString, ...) printf(kwszDebugFormatString, ##__VA_ARGS__); #endif +#else +#define DBGPRINT(kwszDebugFormatString, ...) +#endif // DEBUG using namespace CalculationManager; @@ -62,14 +68,14 @@ public: std::wstring_convert> convert; auto str = convert.to_bytes(pszText); - printf("Native:SetPrimaryDisplay(%ls, %d)\n", pszText.data(), isError); + DBGPRINT("Native:SetPrimaryDisplay(%ls, %d)\n", pszText.data(), isError); _params.SetPrimaryDisplay(_params.CalculatorState, str.data(), isError); } virtual void SetIsInError(bool isInError) override { - printf("Native:SetIsInError(%d)\n", isInError); + DBGPRINT("Native:SetIsInError(%d)\n", isInError); _params.SetIsInError(_params.CalculatorState, isInError); } @@ -78,7 +84,7 @@ public: std::shared_ptr>> const& tokens, std::shared_ptr>> const& commands) override { - printf("Native:SetExpressionDisplay()\n"); + DBGPRINT("Native:SetExpressionDisplay()\n"); auto item = std::make_shared(); item->historyItemVector.expression = L""; @@ -93,38 +99,38 @@ public: virtual void SetParenthesisNumber(unsigned int count) override { - printf("Native:SetParenthesisNumber(%d)\n", count); + DBGPRINT("Native:SetParenthesisNumber(%d)\n", count); _params.SetParenthesisNumber(_params.CalculatorState, count); } virtual void OnNoRightParenAdded() override { - printf("Native:OnNoRightParenAdded()\n"); + DBGPRINT("Native:OnNoRightParenAdded()\n"); _params.OnNoRightParenAdded(_params.CalculatorState); } virtual void MaxDigitsReached() override { - printf("Native:MaxDigitsReached()\n"); + DBGPRINT("Native:MaxDigitsReached()\n"); _params.MaxDigitsReached(_params.CalculatorState); } virtual void BinaryOperatorReceived() override { - printf("Native:BinaryOperatorReceived()\n"); + DBGPRINT("Native:BinaryOperatorReceived()\n"); _params.BinaryOperatorReceived(_params.CalculatorState); } virtual void OnHistoryItemAdded(unsigned int addedItemIndex) override { - printf("Native:OnHistoryItemAdded(%d)\n", addedItemIndex); + DBGPRINT("Native:OnHistoryItemAdded(%d)\n", addedItemIndex); _params.OnHistoryItemAdded(_params.CalculatorState, addedItemIndex); } virtual void SetMemorizedNumbers(const std::vector& memorizedNumbers) override { - printf("Native:SetMemorizedNumbers(%d)\n", (int)memorizedNumbers.size()); + DBGPRINT("Native:SetMemorizedNumbers(%d)\n", (int)memorizedNumbers.size()); auto numbers = new const wchar_t* [memorizedNumbers.size()] {}; @@ -148,7 +154,7 @@ public: virtual void MemoryItemChanged(unsigned int indexOfMemory) override { - printf("Native:MemoryItemChanged(%d)\n", indexOfMemory); + DBGPRINT("Native:MemoryItemChanged(%d)\n", indexOfMemory); _params.MemoryItemChanged(_params.CalculatorState, indexOfMemory); } @@ -169,7 +175,7 @@ public: { auto pResult = _params.GetCEngineString(_params.ResourceState, id.data()); auto str = std::wstring(pResult); - printf("Native:GetCEngineString(id=%ls, str.data()=%ls)\n", id.data(), str.data()); + DBGPRINT("Native:GetCEngineString(id=%ls, str.data()=%ls)\n", id.data(), str.data()); return str; } }; diff --git a/src/CalcManager/CalcManager.wasm b/src/CalcManager/CalcManager.wasm index 873bff55..7ba36e06 100644 Binary files a/src/CalcManager/CalcManager.wasm and b/src/CalcManager/CalcManager.wasm differ diff --git a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs index 11e382ab..009198e3 100644 --- a/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs +++ b/src/Calculator.Shared/CalcManager/CalculatorManager.Interop.cs @@ -127,7 +127,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.MaxDigitsReached(); - Debug.WriteLine($"CalculatorManager.MaxDigitsReachedCallback"); + DebugTrace($"CalculatorManager.MaxDigitsReachedCallback"); } public static void MemoryItemChangedCallback(IntPtr state, int indexOfMemory) @@ -135,7 +135,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.MemoryItemChanged(indexOfMemory); - Debug.WriteLine($"CalculatorManager.MemoryItemChangedCallback({indexOfMemory})"); + DebugTrace($"CalculatorManager.MemoryItemChangedCallback({indexOfMemory})"); } public static void OnHistoryItemAddedCallback(IntPtr state, int addedItemIndex) @@ -143,7 +143,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.OnHistoryItemAdded(addedItemIndex); - Debug.WriteLine($"CalculatorManager.OnHistoryItemAddedCallback({addedItemIndex})"); + DebugTrace($"CalculatorManager.OnHistoryItemAddedCallback({addedItemIndex})"); } public static void OnNoRightParenAddedCallback(IntPtr state) @@ -151,11 +151,13 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.OnNoRightParenAdded(); - Debug.WriteLine($"CalculatorManager.OnNoRightParenAddedCallback"); + DebugTrace($"CalculatorManager.OnNoRightParenAddedCallback"); } public static void SetExpressionDisplayCallback(IntPtr state, IntPtr historyItem) { + DebugTrace($"CalculatorManager.SetExpressionDisplayCallback({state}, {historyItem})"); + var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; var nativeResult = Marshal.PtrToStructure(historyItem); @@ -163,7 +165,6 @@ namespace CalculationManager manager.SetExpressionDisplay(itemResult.historyItemVector.spTokens, itemResult.historyItemVector.spCommands); - Debug.WriteLine($"CalculatorManager.SetExpressionDisplayCallback"); } public static void SetMemorizedNumbersCallback(IntPtr state, int count, IntPtr newMemorizedNumbers) @@ -179,7 +180,7 @@ namespace CalculationManager manager.SetMemorizedNumbers(numbers); - Debug.WriteLine($"CalculatorManager.SetMemorizedNumbersCallback({string.Join(";", numbers)})"); + DebugTrace($"CalculatorManager.SetMemorizedNumbersCallback({string.Join(";", numbers)})"); } public static void SetParenthesisNumberCallback(IntPtr state, int parenthesisCount) @@ -187,7 +188,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.SetParenthesisNumber(parenthesisCount); - Debug.WriteLine($"CalculatorManager.SetParenthesisNumberCallback({parenthesisCount})"); + DebugTrace($"CalculatorManager.SetParenthesisNumberCallback({parenthesisCount})"); } public static void BinaryOperatorReceivedCallback(IntPtr state) @@ -195,7 +196,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.BinaryOperatorReceived(); - Debug.WriteLine($"CalculatorManager.BinaryOperatorReceivedCallback"); + DebugTrace($"CalculatorManager.BinaryOperatorReceivedCallback"); } public static void SetPrimaryDisplayCallback(IntPtr state, [MarshalAs(UnmanagedType.LPWStr)] string displayStringValue, bool isError) @@ -203,7 +204,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.SetPrimaryDisplay(displayStringValue, isError); - Debug.WriteLine($"CalculatorManager.SetPrimaryDisplayCallback({displayStringValue}, {isError})"); + DebugTrace($"CalculatorManager.SetPrimaryDisplayCallback({displayStringValue}, {isError})"); } public static void SetIsInErrorCallback(IntPtr state, bool isError) @@ -211,7 +212,7 @@ namespace CalculationManager var manager = GCHandle.FromIntPtr((IntPtr)state).Target as CalculatorDisplay; manager.SetIsInError(isError); - Debug.WriteLine($"CalculatorManager.SetIsInErrorCallback({isError})"); + DebugTrace($"CalculatorManager.SetIsInErrorCallback({isError})"); } public static IntPtr GetCEngineStringCallback(IntPtr state, IntPtr pResourceId) @@ -227,7 +228,7 @@ namespace CalculationManager var pEngineString = Marshal.StringToHGlobalUni(resourceValue); #endif - Debug.WriteLine($"GetCEngineStringCallback({resourceId}, {resourceValue}"); + DebugTrace($"GetCEngineStringCallback({resourceId}, {resourceValue})"); return pEngineString; } @@ -240,6 +241,11 @@ namespace CalculationManager Marshal.WriteInt32(pRet2 + resourceValue.Length * 4, 0); return pRet2; } + + private static void DebugTrace(string message) + { + // Debug.WriteLine(message); + } } [StructLayout(LayoutKind.Sequential)]