#c #function
Вопрос:
Я довольно новичок в C , и мне нужно запустить код для связи через GPIB с внешним инструментом, поэтому я использую пример руководства через Dev-C :
main.cpp
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
//#include <visa.h> //optional
#include "wgfmu.h"
void checkError(int ret) // 7
{
if(ret < WGFMU_NO_ERROR) {
throw ret;
}
}
int checkError2(int ret) //14
{
if( ret < WGFMU_NO_ERROR ) {
int size;
WGFMU_getErrorSize(amp;size);
char* msg = new char[size 1];
WGFMU_getError(msg, amp;size);
fprintf(stderr, "%s", msg );
delete [] msg;
}
return ret;
}
static const int VISA_ERROR_OFFSET = WGFMU_ERROR_CODE_MIN - 1;
void checkError3(int ret) //29
{
if(ret < WGFMU_NO_ERROR amp;amp; ret >= WGFMU_ERROR_CODE_MIN || ret < VISA_ERROR_OFFSET) {
throw ret;
}
}
void writeResults(int channelId, const char* fileName) //36
{
FILE* fp = fopen(fileName, "w");
if(fp != 0) {
int measuredSize, totalSize;
WGFMU_getMeasureValueSize(channelId, amp;measuredSize, amp;totalSize);
for(int i = 0; i < measuredSize; i ) {
double time, value;
WGFMU_getMeasureValue(channelId, i, amp;time, amp;value);
fprintf(fp, "%.9lf, %.9lfn", time, value);
}
fclose(fp);
}
}
void writeResults2(int channelId, int offset, int size, const char* fileName) //51
{
FILE* fp = fopen(fileName, "w");
if(fp != 0) {
int measuredSize, totalSize;
WGFMU_getMeasureValueSize(channelId, amp;measuredSize, amp;totalSize);
for(int i = offset; i < offset size; i ) {
double time, value;
WGFMU_getMeasureValue(channelId, i, amp;time, amp;value);
fprintf(fp, "%.9lf, %.9lfn", time, value);
}
fclose(fp);
}
}
void writeResults3(int channelId1, int channelId2, int offset, int size, const
char* fileName) //66
{
FILE* fp = fopen(fileName, "w");
if(fp != 0) {
int measuredSize, totalSize;
WGFMU_getMeasureValueSize(channelId2, amp;measuredSize, amp;totalSize);
for(int i = offset; i < offset size; i ) {
double time, value, voltage;
WGFMU_getMeasureValue(channelId2, i, amp;time, amp;value);
WGFMU_getInterpolatedForceValue(channelId1, time, amp;voltage);
fprintf(fp, "%.9lf, %.9lfn", voltage, value);
}
fclose(fp);
}
}
int main() //82
{
// Insert your code here
// OFFLINE
WGFMU_clear(); // 9
WGFMU_createPattern("pulse", 0); // 0 ms, 0 V
WGFMU_addVector("pulse", 0.0001, 1); //0.1 ms, 1 V
WGFMU_addVector("pulse", 0.0004, 1); //0.5 ms, 1 V
WGFMU_addVector("pulse", 0.0001, 0); //0.6 ms, 0 V
WGFMU_addVector("pulse", 0.0004, 0); //1.0 ms, 0 V
WGFMU_addSequence(101, "pulse", 10); //10 pulse output //15
// ONLINE
WGFMU_openSession("GPIB0::17::INSTR"); //18
WGFMU_initialize();
WGFMU_setOperationMode(101, WGFMU_OPERATION_MODE_FASTIV);
WGFMU_connect(101);
WGFMU_execute();
WGFMU_waitUntilCompleted();
WGFMU_initialize(); // WGFMU_disconnect(101); //24
WGFMU_closeSession();
}
И вот что я получаю:
D:foldermain.cpp:16: undefined reference to `WGFMU_getErrorSize(int*)'
D:foldermain.cpp:18: undefined reference to `WGFMU_getError(char*, int*)'
main.o: In function `writeResults(int, char const*)':
D:foldermain.cpp:37: undefined reference to `WGFMU_getMeasureValueSize(int, int*, int*)'
D:foldermain.cpp:40: undefined reference to `WGFMU_getMeasureValue(int, int, double*, double*)'
main.o: In function `writeResults2(int, int, int, char const*)':
D:foldermain.cpp:51: undefined reference to `WGFMU_getMeasureValueSize(int, int*, int*)'
D:foldermain.cpp:54: undefined reference to `WGFMU_getMeasureValue(int, int, double*, double*)'
main.o: In function `writeResults3(int, int, int, int, char const*)':
D:foldermain.cpp:67: undefined reference to `WGFMU_getMeasureValueSize(int, int*, int*)'
D:foldermain.cpp:70: undefined reference to `WGFMU_getMeasureValue(int, int, double*, double*)'
D:foldermain.cpp:71: undefined reference to `WGFMU_getInterpolatedForceValue(int, double, double*)'
main.o: In function `main':
D:foldermain.cpp:82: undefined reference to `WGFMU_clear()'
D:foldermain.cpp:83: undefined reference to `WGFMU_createPattern(char const*, double)'
D:foldermain.cpp:84: undefined reference to `WGFMU_addVector(char const*, double, double)'
D:foldermain.cpp:85: undefined reference to `WGFMU_addVector(char const*, double, double)'
D:foldermain.cpp:86: undefined reference to `WGFMU_addVector(char const*, double, double)'
D:foldermain.cpp:87: undefined reference to `WGFMU_addVector(char const*, double, double)'
D:foldermain.cpp:88: undefined reference to `WGFMU_addSequence(int, char const*, double)'
D:foldermain.cpp:90: undefined reference to `WGFMU_openSession(char const*)'
D:foldermain.cpp:91: undefined reference to `WGFMU_initialize()'
D:foldermain.cpp:92: undefined reference to `WGFMU_setOperationMode(int, int)'
D:foldermain.cpp:93: undefined reference to `WGFMU_connect(int)'
D:foldermain.cpp:94: undefined reference to `WGFMU_execute()'
D:foldermain.cpp:95: undefined reference to `WGFMU_waitUntilCompleted()'
D:foldermain.cpp:96: undefined reference to `WGFMU_initialize()'
D:foldermain.cpp:97: undefined reference to `WGFMU_closeSession()'
collect2.exe: error: ld returned 1 exit status
D:folderMakefile.win:26: recipe for target 'Proyecto2.exe' failed
mingw32-make.exe: *** [Proyecto2.exe] Error 1
В то время как wgfmu.h находится в той же папке:
/*---------------------------------------------------------------------------*/
/* Distributed by Agilent Technologies */
/* */
/* Do not modify the contents of this file. */
/*---------------------------------------------------------------------------*/
/* */
/* Title : WGFMU.H */
/* Date : 10-30-2008 */
/* Purpose : B1530A (WGFMU) Instrument Library API and Constant Definitions */
/* for Microsoft Visual C .NET */
/* */
/*---------------------------------------------------------------------------*/
#ifndef WGFMU_INSTRUMENTLIBRARY_H
#define WGFMU_INSTRUMENTLIBRARY_H
#define WGFMUAPI _stdcall
// API Return Value - Error Code
static const int WGFMU_NO_ERROR = 0;
static const int WGFMU_PARAMETER_OUT_OF_RANGE_ERROR = -1;
static const int WGFMU_ILLEGAL_STRING_ERROR = -2;
static const int WGFMU_CONTEXT_ERROR = -3;
static const int WGFMU_FUNCTION_NOT_SUPPORTED_ERROR = -4;
static const int WGFMU_COMMUNICATION_ERROR = -5;
static const int WGFMU_FW_ERROR = -6;
static const int WGFMU_LIBRARY_ERROR = -7;
static const int WGFMU_ERROR = -8;
static const int WGFMU_CHANNEL_NOT_FOUND_ERROR = -9;
static const int WGFMU_PATTERN_NOT_FOUND_ERROR = -10;
static const int WGFMU_EVENT_NOT_FOUND_ERROR = -11;
static const int WGFMU_PATTERN_ALREADY_EXISTS_ERROR = -12;
static const int WGFMU_SEQUENCER_NOT_RUNNING_ERROR = -13;
static const int WGFMU_RESULT_NOT_READY_ERROR = -14;
static const int WGFMU_RESULT_OUT_OF_DATE = -15;
static const int WGFMU_ERROR_CODE_MIN = -9999;
// WGFMU_doSelfCaliration, WGFMU_doSelfTest
static const int WGFMU_PASS = 0;
static const int WGFMU_FAIL = 1;
// WGFMU_treatWarningsAsErrors, WGFMU_setWarningLevel
static const int WGFMU_WARNING_LEVEL_OFFSET = 1000;
static const int WGFMU_WARNING_LEVEL_OFF = WGFMU_WARNING_LEVEL_OFFSET 0;
static const int WGFMU_WARNING_LEVEL_SEVERE = WGFMU_WARNING_LEVEL_OFFSET 1;
static const int WGFMU_WARNING_LEVEL_NORMAL = WGFMU_WARNING_LEVEL_OFFSET 2;
static const int WGFMU_WARNING_LEVEL_INFORMATION = WGFMU_WARNING_LEVEL_OFFSET 3;
// WGFMU_setOperationMode
static const int WGFMU_OPERATION_MODE_OFFSET = 2000;
static const int WGFMU_OPERATION_MODE_DC = WGFMU_OPERATION_MODE_OFFSET 0;
static const int WGFMU_OPERATION_MODE_FASTIV = WGFMU_OPERATION_MODE_OFFSET 1;
static const int WGFMU_OPERATION_MODE_PG = WGFMU_OPERATION_MODE_OFFSET 2;
static const int WGFMU_OPERATION_MODE_SMU = WGFMU_OPERATION_MODE_OFFSET 3;
// WGFMU_setForceVoltageRange
static const int WGFMU_FORCE_VOLTAGE_RANGE_OFFSET = 3000;
static const int WGFMU_FORCE_VOLTAGE_RANGE_AUTO = WGFMU_FORCE_VOLTAGE_RANGE_OFFSET 0;
static const int WGFMU_FORCE_VOLTAGE_RANGE_3V = WGFMU_FORCE_VOLTAGE_RANGE_OFFSET 1;
static const int WGFMU_FORCE_VOLTAGE_RANGE_5V = WGFMU_FORCE_VOLTAGE_RANGE_OFFSET 2;
static const int WGFMU_FORCE_VOLTAGE_RANGE_10V_NEGATIVE = WGFMU_FORCE_VOLTAGE_RANGE_OFFSET 3;
static const int WGFMU_FORCE_VOLTAGE_RANGE_10V_POSITIVE = WGFMU_FORCE_VOLTAGE_RANGE_OFFSET 4;
// WGFMU_setMeasureMode
static const int WGFMU_MEASURE_MODE_OFFSET = 4000;
static const int WGFMU_MEASURE_MODE_VOLTAGE = WGFMU_MEASURE_MODE_OFFSET 0;
static const int WGFMU_MEASURE_MODE_CURRENT = WGFMU_MEASURE_MODE_OFFSET 1;
// WGFMU_setMeasureVoltageRange
static const int WGFMU_MEASURE_VOLTAGE_RANGE_OFFSET = 5000;
static const int WGFMU_MEASURE_VOLTAGE_RANGE_5V = WGFMU_MEASURE_VOLTAGE_RANGE_OFFSET 1;
static const int WGFMU_MEASURE_VOLTAGE_RANGE_10V = WGFMU_MEASURE_VOLTAGE_RANGE_OFFSET 2;
// WGFMU_setMeasureCurrentRange
static const int WGFMU_MEASURE_CURRENT_RANGE_OFFSET = 6000;
static const int WGFMU_MEASURE_CURRENT_RANGE_1UA = WGFMU_MEASURE_CURRENT_RANGE_OFFSET 1;
static const int WGFMU_MEASURE_CURRENT_RANGE_10UA = WGFMU_MEASURE_CURRENT_RANGE_OFFSET 2;
static const int WGFMU_MEASURE_CURRENT_RANGE_100UA = WGFMU_MEASURE_CURRENT_RANGE_OFFSET 3;
static const int WGFMU_MEASURE_CURRENT_RANGE_1MA = WGFMU_MEASURE_CURRENT_RANGE_OFFSET 4;
static const int WGFMU_MEASURE_CURRENT_RANGE_10MA = WGFMU_MEASURE_CURRENT_RANGE_OFFSET 5;
// WGFMU_setMeasureEnabled
static const int WGFMU_MEASURE_ENABLED_OFFSET = 7000;
static const int WGFMU_MEASURE_ENABLED_DISABLE = WGFMU_MEASURE_ENABLED_OFFSET 0;
static const int WGFMU_MEASURE_ENABLED_ENABLE = WGFMU_MEASURE_ENABLED_OFFSET 1;
// WGFMU_setTriggerOutMode
static const int WGFMU_TRIGGER_OUT_MODE_OFFSET = 8000;
static const int WGFMU_TRIGGER_OUT_MODE_DISABLE = WGFMU_TRIGGER_OUT_MODE_OFFSET 0;
static const int WGFMU_TRIGGER_OUT_MODE_START_EXECUTION = WGFMU_TRIGGER_OUT_MODE_OFFSET 1;
static const int WGFMU_TRIGGER_OUT_MODE_START_SEQUENCE = WGFMU_TRIGGER_OUT_MODE_OFFSET 2;
static const int WGFMU_TRIGGER_OUT_MODE_START_PATTERN = WGFMU_TRIGGER_OUT_MODE_OFFSET 3;
static const int WGFMU_TRIGGER_OUT_MODE_EVENT = WGFMU_TRIGGER_OUT_MODE_OFFSET 4;
static const int WGFMU_TRIGGER_OUT_POLARITY_OFFSET = 8100;
static const int WGFMU_TRIGGER_OUT_POLARITY_POSITIVE = WGFMU_TRIGGER_OUT_POLARITY_OFFSET 0;
static const int WGFMU_TRIGGER_OUT_POLARITY_NEGATIVE = WGFMU_TRIGGER_OUT_POLARITY_OFFSET 1;
// WGFMU_createMergedPattern
static const int WGFMU_AXIS_OFFSET = 9000;
static const int WGFMU_AXIS_TIME = WGFMU_AXIS_OFFSET 0;
static const int WGFMU_AXIS_VOLTAGE = WGFMU_AXIS_OFFSET 1;
// WGFMU_getStatus, WGFMU_getChannelStatus
static const int WGFMU_STATUS_OFFSET = 10000;
static const int WGFMU_STATUS_COMPLETED = WGFMU_STATUS_OFFSET 0;
static const int WGFMU_STATUS_DONE = WGFMU_STATUS_OFFSET 1;
static const int WGFMU_STATUS_RUNNING = WGFMU_STATUS_OFFSET 2;
static const int WGFMU_STATUS_ABORT_COMPLETED = WGFMU_STATUS_OFFSET 3;
static const int WGFMU_STATUS_ABORTED = WGFMU_STATUS_OFFSET 4;
static const int WGFMU_STATUS_RUNNING_ILLEGAL = WGFMU_STATUS_OFFSET 5;
static const int WGFMU_STATUS_IDLE = WGFMU_STATUS_OFFSET 6;
// WGFMU_isMeasureEventCompleted
static const int WGFMU_MEASURE_EVENT_OFFSET = 11000;
static const int WGFMU_MEASURE_EVENT_NOT_COMPLETED = WGFMU_MEASURE_EVENT_OFFSET 0;
static const int WGFMU_MEASURE_EVENT_COMPLETED = WGFMU_MEASURE_EVENT_OFFSET 1;
// WGFMU_setMeasureEvent
static const int WGFMU_MEASURE_EVENT_DATA_OFFSET = 12000;
static const int WGFMU_MEASURE_EVENT_DATA_AVERAGED = WGFMU_MEASURE_EVENT_DATA_OFFSET 0;
static const int WGFMU_MEASURE_EVENT_DATA_RAW = WGFMU_MEASURE_EVENT_DATA_OFFSET 1;
// Common - Initialize
int WGFMUAPI WGFMU_openSession(const char* address);
int WGFMUAPI WGFMU_closeSession();
int WGFMUAPI WGFMU_initialize();
int WGFMUAPI WGFMU_setTimeout(double timeout);
int WGFMUAPI WGFMU_doSelfCalibration(int* result, char* detail, int* size);
int WGFMUAPI WGFMU_doSelfTest(int* result, char* detail, int* size);
int WGFMUAPI WGFMU_getChannelIdSize(int* size);
int WGFMUAPI WGFMU_getChannelIds(int* channelIds, int* size);
// Common - Error and Warning
int WGFMUAPI WGFMU_getErrorSize(int* size);
int WGFMUAPI WGFMU_getError(char* error, int* size);
int WGFMUAPI WGFMU_getErrorSummarySize(int* size);
int WGFMUAPI WGFMU_getErrorSummary(char* errorSummary, int* size);
int WGFMUAPI WGFMU_treatWarningsAsErrors(int warningLevel);
int WGFMUAPI WGFMU_setWarningLevel(int warningLevel);
int WGFMUAPI WGFMU_getWarningLevel(int* warningLevel);
int WGFMUAPI WGFMU_getWarningSummarySize(int* size);
int WGFMUAPI WGFMU_getWarningSummary(char* warningSummary, int* size);
int WGFMUAPI WGFMU_openLogFile(const char* fileName);
int WGFMUAPI WGFMU_closeLogFile();
// Common - Setup
int WGFMUAPI WGFMU_setOperationMode(int channelId,int operationMode);
int WGFMUAPI WGFMU_getOperationMode(int channelId, int* operationMode);
int WGFMUAPI WGFMU_setForceVoltageRange(int channelId, int forceVoltageRange);
int WGFMUAPI WGFMU_getForceVoltageRange(int channelId, int* forceVoltageRange);
int WGFMUAPI WGFMU_setMeasureMode(int channelId, int measureMode);
int WGFMUAPI WGFMU_getMeasureMode(int channelId, int* measureMode);
int WGFMUAPI WGFMU_setMeasureVoltageRange(int channelId, int measureVoltageRange);
int WGFMUAPI WGFMU_getMeasureVoltageRange(int channelId, int* measureVoltageRange);
int WGFMUAPI WGFMU_setMeasureCurrentRange(int channelId, int measureCurrentRange);
int WGFMUAPI WGFMU_getMeasureCurrentRange(int channelId, int* measureCurrentRange);
int WGFMUAPI WGFMU_setForceDelay(int channelId, double forceDelay);
int WGFMUAPI WGFMU_getForceDelay(int channelId, double* forceDelay);
int WGFMUAPI WGFMU_setMeasureDelay(int channelId, double measureDelay);
int WGFMUAPI WGFMU_getMeasureDelay(int channelId, double* measureDelay);
int WGFMUAPI WGFMU_setMeasureEnabled(int channelId, int measureEnabled);
int WGFMUAPI WGFMU_isMeasureEnabled(int channelId, int* measureEnabled);
int WGFMUAPI WGFMU_setTriggerOutMode(int channelId, int triggerOutMode, int polarity);
int WGFMUAPI WGFMU_getTriggerOutMode(int channelId, int* triggerOutMode, int* polarity);
// Common - Measurement
int WGFMUAPI WGFMU_connect(int channelId);
int WGFMUAPI WGFMU_disconnect(int channelId);
// WGFMU - Initialize
int WGFMUAPI WGFMU_clear();
// WGFMU - Setup - Pattern
int WGFMUAPI WGFMU_createPattern(const char* patternName, double initialVoltage);
int WGFMUAPI WGFMU_addVector(const char* patternName, double deltaTime, double voltage);
int WGFMUAPI WGFMU_addVectors(const char* patternName, double* deltaTimes, double* voltages, int size);
int WGFMUAPI WGFMU_setVector(const char* patternName, double time, double voltage);
int WGFMUAPI WGFMU_setVectors(const char* patternName, double* times, double* voltages, int size);
// WGFMU - Setup - Pattern Opeartion
int WGFMUAPI WGFMU_createMergedPattern(const char* patternName, const char* pattern1, const char* pattern2, int axis);
int WGFMUAPI WGFMU_createMultipliedPattern(const char* patternName, const char* pattern1, double timeFactor, double voltageFactor);
int WGFMUAPI WGFMU_createOffsetPattern(const char* patternName, const char* pattern1, double timeOffset, double voltageOffset);
// WGFMU - Setup - Event
int WGFMUAPI WGFMU_setMeasureEvent(const char* patternName, const char* eventName, double time, int measurementPoints, double measurementInterval, double averagingTime, int rawData);
int WGFMUAPI WGFMU_setRangeEvent(const char* patternName, const char* eventName, double time, int rangeIndex);
int WGFMUAPI WGFMU_setTriggerOutEvent(const char* patternName, const char* eventName, double time, double duration);
// WGFMU - Setup - Sequence
int WGFMUAPI WGFMU_addSequence(int channelId, const char* patternName, double loopCount);
int WGFMUAPI WGFMU_addSequences(int channelId, const char** patternNames, double* loopCounts, int size);
// WGFMU - Setup Check - Pattern
int WGFMUAPI WGFMU_getPatternForceValueSize(const char* patternName, int* size);
int WGFMUAPI WGFMU_getPatternForceValues(const char* patternName, int offset, int* size, double* forceTimes, double* forceValues);
int WGFMUAPI WGFMU_getPatternForceValue(const char* patternName, int index, double* forceTime, double* forceValue);
int WGFMUAPI WGFMU_getPatternInterpolatedForceValue(const char* patternName, double time, double* forceValue);
int WGFMUAPI WGFMU_getPatternMeasureTimeSize(const char* patternName, int* size);
int WGFMUAPI WGFMU_getPatternMeasureTimes(const char* patternName, int offset, int* size, double* measureTimes);
int WGFMUAPI WGFMU_getPatternMeasureTime(const char* patternName, int index, double* measureTime);
// WGFMU - Setup Check - Sequence
int WGFMUAPI WGFMU_getForceValueSize(int channelId, double* size);
int WGFMUAPI WGFMU_getForceValues(int channelId, double offset, int* size, double* forceTimes, double* forceValues);
int WGFMUAPI WGFMU_getForceValue(int channelId, double index, double* forceTime, double* forceValue);
int WGFMUAPI WGFMU_getInterpolatedForceValue(int channelId, double time, double* forceValue);
int WGFMUAPI WGFMU_getMeasureTimeSize(int channelId, int* size);
int WGFMUAPI WGFMU_getMeasureTimes(int channelId, int offset, int* size, double* measureTimes);
int WGFMUAPI WGFMU_getMeasureTime(int channelId, int index, double* measureTime);
// WGFMU - Setup Check - Event
int WGFMUAPI WGFMU_getMeasureEventSize(int channelId, int* size);
int WGFMUAPI WGFMU_getMeasureEvents(int channelId, int offset, int* size, char** patternNames, char** eventNames, int* cycles, double* loops, int* counts, int* offsets, int* sizes);
int WGFMUAPI WGFMU_getMeasureEvent(int channelId, int index, char* patternName, char* eventName, int* cycle, double* loop, int* count, int* offset, int* size);
int WGFMUAPI WGFMU_getMeasureEventAttribute(int channelId, int index, double* time, int* measurementPoints, double* measurementInterval, double* averagingTime, int* rawData);
// WGFMU - Import / Export
int WGFMUAPI WGFMU_exportAscii(const char* fileName);
// WGFMU - Measurement
int WGFMUAPI WGFMU_update();
int WGFMUAPI WGFMU_updateChannel(int channelId);
int WGFMUAPI WGFMU_execute();
int WGFMUAPI WGFMU_abort();
int WGFMUAPI WGFMU_abortChannel(int channelId);
int WGFMUAPI WGFMU_getStatus(int* status, double* elapsedTime, double* totalTime);
int WGFMUAPI WGFMU_getChannelStatus(int channelId, int* status, double* elapsedTime, double* totalTime);
int WGFMUAPI WGFMU_waitUntilCompleted();
// WGFMU - Data Retrieve - Measure Value
int WGFMUAPI WGFMU_getMeasureValueSize(int channelId, int* measuredSize, int* totalSize);
int WGFMUAPI WGFMU_getMeasureValues(int channelId, int offset, int* size, double* measureTimes, double* measureValues);
int WGFMUAPI WGFMU_getMeasureValue(int channelId, int index, double* measureTime, double* measureValue);
// WGFMU - Data Retrieve - Measure Event
int WGFMUAPI WGFMU_getCompletedMeasureEventSize(int channelId, int* measuredSize, int* totalSize);
int WGFMUAPI WGFMU_isMeasureEventCompleted(int channelId, const char* patternName, const char* eventName, int cycle, double loop, int count, int* completed, int* index, int* offset, int* size);
// DC - Measure
int WGFMUAPI WGFMU_dcforceVoltage(int channelId, double voltage);
int WGFMUAPI WGFMU_dcmeasureValue(int channelId, double* value);
int WGFMUAPI WGFMU_dcmeasureAveragedValue(int channelId, int count, int interval, double* value);
#endif//WGFMU_INSTRUMENTLIBRARY_H
Заранее извините, это моя первая попытка использовать C , и я просто не могу ее выполнить. Я следовал инструкциям руководства при создании проекта, но все равно получал те же результаты.
Комментарии:
1. Есть ли у вас реализации этих методов? как кажется, он не находит соответствующих символов
2. Вот что я сделал: 1. Создайте новый проект Win32 в Dev-C 2. Вставьте приведенный выше код в файл .cpp 3. Вставьте файл wgfmu.h в ту же папку 4. Выполнить amp; ошибки: неопределенная ссылка на функции
Ответ №1:
В прикрепленном файле wgfmu.h у вас есть только объявление нескольких методов, но у вас нет определения этих методов.
Таким образом, со временем он не сможет найти реализацию и потерпит неудачу.
Например: D:foldermain.cpp:16: неопределенная ссылка на `WGFMU_getErrorSize(int*)’ Вы вызываете эту функцию в «checkError2», но у вас есть объявление этой функции, и у вас нет ее определения (реализации).
Вот почему связь жалуется на неопределенную ссылку.