imho.ws
IMHO.WS  

Вернуться   IMHO.WS > Компьютеры > Программирование
Опции темы
Старый 13.10.2003, 17:50     # 1
anod
Guest
 
Сообщения: n/a

Question Не компилиться программа на С

Я пытаюсь скомпилировать пример из BASS (www.un4seen.com )
с помощью bcc32 (халявный от борланда для коммандной строки)

Вообщем выдает, что нет нужной функции:
Warning W8065 writewav.c 23: Call to function 'BASS_GetVersion' with no prototype in function main
Turbo Incremental Link 5.00 Copyright (c) 1997, 2000 Borland
Error: Unresolved external 'BASS_GetVersion' referenced from C:\BCC55\BIN\WRITEWAV.OBJ


А вот код:
[b][SIZE=1]
/* Imports: bass.lib, basswma.lib, kernel32.lib*/

#include <windows.h>
#include <stdio.h>
#include <conio.h>
#include "bass.h"

void main()
{
/* check that BASS 1.8 was loaded */
if (BASS_GetVersion()!=MAKELONG(1,8)) {
printf("BASS version 1.8 was not loaded\n");
return;
}
}


Можь я не правильно загружаю bass.h?
 
Старый 15.10.2003, 02:11     # 2
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
я думаю неправильно, попробуй <bass.h>
Drakosha вне форума  
Старый 15.10.2003, 02:39     # 3
anod
Guest
 
Сообщения: n/a

Вообщето это из примера bass, но смена - тоже не помогает
 
Старый 15.10.2003, 04:11     # 4
BRULIK
Member
 
Аватар для BRULIK
 
Регистрация: 24.03.2003
Сообщения: 300

BRULIK Луч света в тёмном царствеBRULIK Луч света в тёмном царствеBRULIK Луч света в тёмном царствеBRULIK Луч света в тёмном царствеBRULIK Луч света в тёмном царствеBRULIK Луч света в тёмном царстве
posmotri v samom bass.h propisana li function "BASS_GetVersion()"
moget ti ee nepravil'no pishesh
__________________
0 Вы в интернете
1 Вы на сайте http://www.imho.ws
2 Вы читаете это
4 Вы не заметили отсутствия пункта 3
5 Вы это проверили
6 Вы улыбаетесь
BRULIK вне форума  
Старый 15.10.2003, 12:37     # 5
anod
Guest
 
Сообщения: n/a

Конесно описанна, только как-то странно

#ifndef BASSDEF
#define BASSDEF(f) WINAPI f
#endif

DWORD BASSDEF(BASS_GetVersion)();
/* Retrieve the version number of BASS that is loaded.
RETURN : The BASS version (LOWORD.HIWORD) */
 
Старый 15.10.2003, 14:49     # 6
V0iD
Junior Member
 
Аватар для V0iD
 
Регистрация: 01.06.2003
Адрес: Msk
Пол: Male
Сообщения: 138

V0iD Путь к славе только начался
попробуй этот образ поменят с DWORD BASSDEF(BASS_GetVersion)();
на
DWORD WINAPI BASS_GetVersion();

возможно компилятор не понимает таких дефайнов.
__________________
Завтра будет.
Лучше.
V0iD вне форума  
Старый 15.10.2003, 16:16     # 7
anod
Guest
 
Сообщения: n/a

Не помогает, скачать чтоль другой компилятор??
 
Старый 15.10.2003, 16:47     # 8
Drakosha
Full Member
 
Аватар для Drakosha
 
Регистрация: 16.10.2002
Адрес: ArchLinux, Internet
Сообщения: 557

Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)Drakosha Реально крут(а)
Exclamation

the problem is in linking <u>not compilation</u> - make sure bass library is linked.

sorry - my mistake, it's compilation... make sure bass.h is found, check include directories

Последний раз редактировалось Drakosha; 15.10.2003 в 16:49.
Drakosha вне форума  
Старый 16.10.2003, 00:07     # 9
anod
Guest
 
Сообщения: n/a

Вообщем я розабрался с этой проблемой, надо было добавить эту строчку
#define BASSDEF(f) (WINAPI *f) // define the functions as pointers

Появилась новая проблема, если компилирую с помощью bcc32.exe, то
выдает следующее:
  1. Warning W8060 writewav.cpp 54: Possibly incorrect assignment in function main(int,char * *)
Main выглядит так:
  1. void main(int argc, char **argv)

А аргумент в функции, которая вызывает это сообщение, argv[1], описан как void *
как их привести????

Если компилирую с помощью lcc, то выдает следующее
  1. left operand of . has incompatible type 'int'
код:
  1. WAVEFORMATEX wf;
    wf.nBlockAlign=wf.nChannels*wf.wBitsPerSample/8;
по MSDN эти параметры типа word:
  1. typedef struct
    {
    WORD wFormatTag;
    WORD nChannels;
    DWORD nSamplesPerSec;
    DWORD nAvgBytesPerSec;
    WORD nBlockAlign;
    WORD wBitsPerSample;
    WORD cbSize;
    } WAVEFORMATEX; *PWAVEFORMATEX;

И ещё, нет ли у кого-нибуть хороших ссылок на приведение типов в с????
 


Ваши права в разделе
Вы НЕ можете создавать новые темы
Вы не можете отвечать в темах.
Вы НЕ можете прикреплять вложения
Вы НЕ можете редактировать свои сообщения

BB код Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.

Быстрый переход


Часовой пояс GMT +4, время: 01:22.




Powered by vBulletin® Version 3.8.5
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.