|
|
|
|
Вот , я закомментировал эту функцию, теперь он ругается , на две других, может ноги отсюда ростут? POLINK: error: Unresolved external symbol 'HTCSensorOpen'. POLINK: error: Unresolved external symbol 'HTCSensorClose'. Может ему надо как-то объяснить что они внешние? chav1961: выложите весь исходник программы. Очень громоздко , если не поможет , тогда. |
|
|
Нет, проблема не в этом. Эти сообщения - о том, что эти функции не найдены на стадии линковки - тогда объяснять уже поздно . Сверните прогу в архив и выкладывайте. И еще один момент - каким компилятором пользуетесь? |
|
|
Pelles C Программа для Вин мобайл. 205651.rar |
|
|
Ув Alexey! 1. Настоятельно рекомендую переименовать файл из main.c в main.cpp! У меня Microsoft Visual Studio - он без такого переименования компилировать файл отказывается. 2. Структура SensorData должна быть объявлена до описания функции HTCSensorGetDataOutput ! 3. Alexey, нескромный вопрос - вы сами писали программу? Дело в том, что в ней вы пользуетесь функцией LoadLibrary. Если для доступа к DLL используется именно эта функция, тогда программа написана совершенно неверно. |
|
|
chav1961: вы сами писали программу? Часть писала среда , часть я. Короче, я присоединял нужное мне к тому, что накропала среда. Лоад Лайбруари что-то присоединяла, какой-то хендл я выводил для пробы. chav1961: объявлена до описания функции Сделал, без изменений. chav1961: переименовать файл из main.c в main.cpp! Она игнорирует такое расширение. |
|
|
1. т.е. сейчас int HTCSensorGetDataOutput(HANDLE handle, SensorData& data); у вас после struct SensorData {.........}? А что компилятор говорит? 2. После того, как отработает LoadLibrary, нужно получить адреса точек входа в библиотеке для ваших функций. Для этого используется функция GetProcAddress. Должно быть что-то навроде: HANDLE hLib; HANDLE (*HTCSensorOpen)(int sensor_ID); // Вот так нужно объявить точки входа! hLib = LoadLibrary(_T("HTCSensorSDK")); HTCSensorOpen = (HANDLE (*)(int))GetProcAddress(hLib,_T("HTCSensorOpen")); // Вот так нужно определить их адреса hGsens= (*HTCSensorOpen)(1); // А вот так ими нужно пользоваться!
|
|
|
chav1961: А что компилятор говорит? Тоже самое: ..Vmax\main.c(47): error #2095: Missing parameter type 'SensorData'. ..\Vmax\main.c(47): warning #2099: Missing type specifier. ..Vmax\main.c(47): error #2001: Syntax error: expected ')' but found '&'. ..\Vmax\main.c(151): error #2140: Type error in argument 2 to 'HTCSensorGetDataOutput'; found 'struct SensorData *', expected 'int'. chav1961: Для этого используется функция GetProcAddress А про нее я забыл. |
|
|
Тогда попробуйте еще вместо struct SensorData {.....} Data; сделать так: typedef struct {.....} SensorData; SensorData Data; ... ..... .....(HANDLE handle, SensorData& data); |
|
|
chav1961: попробуйте еще Чуть полегчало ..Vmax\main.c(48): error #2001: Syntax error: expected ')' but found '&'. ..Vmax\main.c(152): error #2140: Type error in argument 2 to 'HTCSensorGetDataOutput'; found 'SensorData *', expected 'SensorData'
|
|
|
Ну, теперь замените в описании функции SensorData& data на SensorData *data, и будет вам счастье  |
|
|
|
|