Hallo,
ich habe gestern begonnen einen Wrapper für eine C-Bibliothek mit Hilfe von c++/CLI neu zu schreiben. Wenn ich nun versuche bei einer Funktion ein Managed-Enum zurückzugeben erhalte ich den Fehler:
Fehler:
Mein bisheriger Code:
Code:
USBPT104Functions.cpp
USBPT104Functions.h
PicoStatusInfo.h
Wenn ich anstatt dem Enum eine unsigned long oder irgend einen anderen Standardtypen zurückgebe funktioniert es.
Ich hoffe ihr könnt mir helfen.
Grüße Wulf
ich habe gestern begonnen einen Wrapper für eine C-Bibliothek mit Hilfe von c++/CLI neu zu schreiben. Wenn ich nun versuche bei einer Funktion ein Managed-Enum zurückzugeben erhalte ich den Fehler:
Quellcode
- error C2371: 'PicoNet::USBPT104::USBPT104Functions::CloseUnit': Neudefinition; unterschiedliche Basistypen
- error C2556: 'PicoNet::PicoStatus PicoNet::USBPT104::USBPT104Functions::CloseUnit(float)': Überladene Funktion unterscheidet sich nur hinsichtlich des Rückgabetyps von 'int PicoNet::USBPT104::USBPT104Functions::CloseUnit(float)'
- error C4430: Fehlender Typspezifizierer - int wird angenommen. Hinweis: "default-int" wird von C++ nicht unterstützt.
Mein bisheriger Code:
USBPT104Functions.cpp
C-Quellcode
USBPT104Functions.h
PicoStatusInfo.h
Quellcode
- namespace PicoNet {
- public enum class PicoInfo
- {
- DRIVER_VERSION = 0x00000000UL,
- USB_VERSION,
- HARDWARE_VERSION,
- VARIANT_INFO,
- BATCH_AND_SERIAL,
- CAL_DATE,
- KERNEL_VERSION,
- DIGITAL_HARDWARE_VERSION,
- ANALOGUE_HARDWARE_VERSION,
- FIRMWARE_VERSION_1,
- FIRMWARE_VERSION_2,
- MAC_ADDRESS,
- };
- public enum class PicoStatus
- {
- OK = 0x00000000UL,
- MAX_UNITS_OPENED,
- MEMORY_FAI,
- NOT_FOUND,
- FW_FAIL,
- OPEN_OPERATION_IN_PROGRESS,
- OPERATION_FAILED,
- NOT_RESPONDING,
- CONFIG_FAIL,
- KERNEL_DRIVER_TOO_OLD,
- EEPROM_CORRUPT,
- OS_NOT_SUPPORTED,
- INVALID_HANDLE,
- INVALID_PARAMETER,
- INVALID_TIMEBASE,
- INVALID_VOLTAGE_RANGE,
- INVALID_CHANNEL,
- INVALID_TRIGGER_CHANNEL,
- INVALID_CONDITION_CHANNEL,
- NO_SIGNAL_GENERATOR,
- STREAMING_FAILED,
- BLOCK_MODE_FAILED,
- NULL_PARAMETER,
- ETS_MODE_SET,
- DATA_NOT_AVAILABLE,
- STRING_BUFFER_TO_SMALL,
- ETS_NOT_SUPPORTED,
- AUTO_TRIGGER_TIME_TO_SHORT,
- BUFFER_STALL,
- TOO_MANY_SAMPLES,
- TOO_MANY_SEGMENTS,
- PULSE_WIDTH_QUALIFIER,
- DELAY,
- SOURCE_DETAILS,
- CONDITIONS,
- USER_CALLBACK,
- DEVICE_SAMPLING,
- NO_SAMPLES_AVAILABLE,
- SEGMENT_OUT_OF_RANGE,
- BUSY,
- STARTINDEX_INVALID,
- INVALID_INFO,
- INFO_UNAVAILABLE,
- INVALID_SAMPLE_INTERVAL,
- TRIGGER_ERROR,
- MEMORY,
- SIG_GEN_PARAM,
- SHOTS_SWEEPS_WARNING,
- SIGGEN_TRIGGER_SOURCE,
- AUX_OUTPUT_CONFLICT,
- AUX_OUTPUT_ETS_CONFLICT,
- WARNING_EXT_THRESHOLD_CONFLICT,
- WARNING_AUX_OUTPUT_CONFLICT,
- SIGGEN_OUTPUT_OVER_VOLTAGE,
- DELAY_NULL,
- INVALID_BUFFER,
- SIGGEN_OFFSET_VOLTAGE,
- SIGGEN_PK_TO_PK,
- CANCELLED,
- SEGMENT_NOT_USED,
- INVALID_CALL,
- GET_VALUES_INTERRUPTED,
- NOT_USED = 0x0000003FUL,
- INVALID_SAMPLERATIO,
- INVALID_STATE,
- NOT_ENOUGH_SEGMENTS,
- DRIVER_FUNCTION,
- RESERVED,
- INVALID_COUPLING,
- BUFFERS_NOT_SET,
- RATIO_MODE_NOT_SUPPORTED,
- RAPID_NOT_SUPPORT_AGGREGATION,
- INVALID_TRIGGER_PROPERTY,
- INTERFACE_NOT_CONNECTED,
- RESISTANCE_AND_PROBE_NOT_ALLOWED,
- POWER_FAILED,
- SIGGEN_WAVEFORM_SETUP_FAILED,
- FPGA_FAIL,
- POWER_MANAGER,
- INVALID_ANALOGUE_OFFSET,
- PLL_LOCK_FAILED,
- ANALOG_BOARD,
- CONFIG_FAIL_AWG,
- INITIALISE_FPGA,
- EXTERNAL_FREQUENCY_INVALID = 0x00000056UL,
- CLOCK_CHANGE_ERROR,
- TRIGGER_AND_EXTERNAL_CLOCK_CLASH,
- PWQ_AND_EXTERNAL_CLOCK_CLASH,
- UNABLE_TO_OPEN_SCALING_FILE,
- MEMORY_CLOCK_FREQUENCY,
- I2C_NOT_RESPONDING,
- NO_CAPTURES_AVAILABLE,
- NOT_USED_IN_THIS_CAPTURE_MODE,
- GET_DATA_ACTIVE = 0x00000103UL,
- IP_NETWORKED,
- INVALID_IP_ADDRESS,
- IPSOCKET_FAILED,
- IPSOCKET_TIMEDOUT,
- SETTINGS_FAILED,
- NETWORK_FAILED,
- WS2_32_DLL_NOT_LOADED,
- INVALID_IP_PORT,
- COUPLING_NOT_SUPPORTED,
- BANDWIDTH_NOT_SUPPORTED,
- INVALID_BANDWIDTH,
- AWG_NOT_SUPPORTED,
- ETS_NOT_RUNNING,
- SIG_GEN_WHITENOISE_NOT_SUPPORTED,
- SIG_GEN_WAVETYPE_NOT_SUPPORTED,
- INVALID_DIGITAL_PORT,
- INVALID_DIGITAL_CHANNEL,
- INVALID_DIGITAL_TRIGGER_DIRECTION,
- SIG_GEN_PRBS_NOT_SUPPORTED,
- ETS_NOT_AVAILABLE_WITH_LOGIC_CHANNELS,
- WARNING_REPEAT_VALUE,
- POWER_SUPPLY_CONNECTED,
- POWER_SUPPLY_NOT_CONNECTED,
- POWER_SUPPLY_REQUEST_INVALID,
- POWER_SUPPLY_UNDERVOLTAGE,
- CAPTURING_DATA,
- USB3_0_DEVICE_NON_USB3_0_PORT,
- WATCHDOGTIMER = 0x10000000UL
- };
- }
Wenn ich anstatt dem Enum eine unsigned long oder irgend einen anderen Standardtypen zurückgebe funktioniert es.
Ich hoffe ihr könnt mir helfen.
Grüße Wulf