IMHO.WS

IMHO.WS (https://www.imho.ws/index.php)
-   Программирование (https://www.imho.ws/forumdisplay.php?f=40)
-   -   Не компилиться программа на С (https://www.imho.ws/showthread.php?t=40849)

anod 13.10.2003 17:50

Не компилиться программа на С
 
Я пытаюсь скомпилировать пример из 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?

Drakosha 15.10.2003 02:11

я думаю неправильно, попробуй <bass.h>

anod 15.10.2003 02:39

Вообщето это из примера bass, но смена - тоже не помогает

BRULIK 15.10.2003 04:11

posmotri v samom bass.h propisana li function "BASS_GetVersion()"
moget ti ee nepravil'no pishesh

anod 15.10.2003 12:37

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

#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) */

V0iD 15.10.2003 14:49

попробуй этот образ поменят с DWORD BASSDEF(BASS_GetVersion)();
на
DWORD WINAPI BASS_GetVersion();

возможно компилятор не понимает таких дефайнов.

anod 15.10.2003 16:16

Не помогает, скачать чтоль другой компилятор??

Drakosha 15.10.2003 16:47

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

anod 16.10.2003 00:07

Вообщем я розабрался с этой проблемой, надо было добавить эту строчку
#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;

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


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

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