fix: move __stdcall behind the pointer in the candle API
MSVC rejects a calling convention placed before the '*' of a pointer return type with C2165, so every translation unit including candle.h failed to compile. MinGW accepts the upstream spelling, which is why the cross build did not catch this. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01XZnuZJ7zc3e8hk6C8bGDZN
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# candle API (gs_usb / candleLight Windows driver)
|
||||
|
||||
Vendored, unmodified copy of the candle Windows API used by SavvyCAN's gs_usb
|
||||
Vendored copy of the candle Windows API used by SavvyCAN's gs_usb
|
||||
connection (`connections/gs_usb.cpp`). It talks to gs_usb class devices
|
||||
(candleLight, CANable, CANnectivity, cantact, ...) over WinUSB, so no vendor
|
||||
driver is needed — only a WinUSB binding on the device interface (which the
|
||||
@@ -13,6 +13,14 @@ stock candleLight/CANable firmware already declares via WCID descriptors).
|
||||
at commit `ed3088d5393e02a01afe867af2ee8ab0e12db039`, which adds CAN FD,
|
||||
multi-channel and hardware timestamp support — Copyright (c) 2026 Schildkroet
|
||||
|
||||
## Local changes
|
||||
|
||||
Kept to the minimum needed to build here; re-apply them when refreshing from upstream.
|
||||
|
||||
- `candle.h` / `candle.c`: the three functions returning a pointer declared the calling
|
||||
convention before the `*` (`wchar_t __stdcall DLL *candle_dev_get_path`). MinGW accepts
|
||||
that, MSVC rejects it with C2165, so `__stdcall` moved behind the `*`.
|
||||
|
||||
## License
|
||||
|
||||
These files are **LGPL-3.0**, not MIT like the rest of SavvyCAN. They are only
|
||||
|
||||
+1145
-1145
File diff suppressed because it is too large
Load Diff
@@ -237,7 +237,7 @@ bool __stdcall DLL candle_list_length(candle_list_handle list, uint8_t *len);
|
||||
|
||||
bool __stdcall DLL candle_dev_get(candle_list_handle list, uint8_t dev_num, candle_handle *hdev);
|
||||
bool __stdcall DLL candle_dev_get_state(candle_handle hdev, candle_devstate_t *state);
|
||||
wchar_t __stdcall DLL *candle_dev_get_path(candle_handle hdev);
|
||||
wchar_t * __stdcall DLL candle_dev_get_path(candle_handle hdev);
|
||||
bool __stdcall DLL candle_dev_open(candle_handle hdev);
|
||||
bool __stdcall DLL candle_dev_get_timestamp_us(candle_handle hdev, uint32_t *timestamp_us);
|
||||
bool __stdcall DLL candle_dev_close(candle_handle hdev);
|
||||
@@ -259,7 +259,7 @@ uint32_t __stdcall DLL candle_frame_id(candle_frame_t *frame);
|
||||
bool __stdcall DLL candle_frame_is_extended_id(candle_frame_t *frame);
|
||||
bool __stdcall DLL candle_frame_is_rtr(candle_frame_t *frame);
|
||||
uint8_t __stdcall DLL candle_frame_dlc(candle_frame_t *frame);
|
||||
uint8_t __stdcall DLL *candle_frame_data(candle_frame_t *frame);
|
||||
uint8_t * __stdcall DLL candle_frame_data(candle_frame_t *frame);
|
||||
uint32_t __stdcall DLL candle_frame_timestamp_us(candle_frame_t *frame);
|
||||
|
||||
/* CAN FD extensions */
|
||||
@@ -274,7 +274,7 @@ bool __stdcall DLL candle_fd_frame_is_rtr(candle_fd_frame_t *frame);
|
||||
bool __stdcall DLL candle_fd_frame_is_fd(candle_fd_frame_t *frame);
|
||||
bool __stdcall DLL candle_fd_frame_is_brs(candle_fd_frame_t *frame);
|
||||
uint8_t __stdcall DLL candle_fd_frame_dlc(candle_fd_frame_t *frame);
|
||||
uint8_t __stdcall DLL *candle_fd_frame_data(candle_fd_frame_t *frame);
|
||||
uint8_t * __stdcall DLL candle_fd_frame_data(candle_fd_frame_t *frame);
|
||||
uint32_t __stdcall DLL candle_fd_frame_timestamp_us(candle_fd_frame_t *frame);
|
||||
|
||||
candle_err_t __stdcall DLL candle_dev_last_error(candle_handle hdev);
|
||||
|
||||
Reference in New Issue
Block a user