|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Сен 2, 2004 17:58:34 · Поправил: _animaTOR_ Добрый день! Научился писать на masm dll-ки. Хочется поиспользовать их в программах на С. Подскажите пожалуйста как правильно их (lib- ы )подключить в проект VC++ 6.0 ? Если так , ... #include "stdafx.h"
#pragma comment(lib,"моя_библиотека.lib" )
int main(int argc, char* argv[])
{
printf("Hello World!\n");
моя_функция();
return 0;
}
... то
error C2065: 'моя_функция' : undeclared identifier Спасибо. |
|
|
Дата: Сен 2, 2004 18:13:21 _animaTOR_ А ты прототип своей функции (пр)описАл? |
|
|
Дата: Сен 3, 2004 04:43:45 _animaTOR_ Компилятор ясно пишет: undeclared identifier, т.е. неопределённый идентификатор (имя функции). О том как правильно определить этот самый идентификатор неоднократно писали в форуме. |
|
|
Дата: Сен 3, 2004 10:27:35 · Поправил: _animaTOR_ ... спасибо за ответы, но, не сочтите за Безтактность, все-таки подскажите где об этом писалось на форумах. Я тут уже и в Project -> Settings -> Link -> ... ee добавил - не достаточно. И по форуму искал по словосочетанию - "прилинковать lib"? нет ничего. И прототип (по указанию Asterix-а ) в виде строки :
#include "stdafx.h"
#pragma comment(lib,"моя_lib.lib" )
void моя_функция (void);
int main(int argc, char* argv[])
{
printf("Hello World!\n");
моя_функция ();
return 0;
}
... в masm там проще :
includelib моя_lib.lib
моя_функция PROTO
<...>
invoke моя_функция
... а в этом VC? ... |
|
|
Дата: Сен 3, 2004 12:17:08 · Поправил: Kozyr _animaTOR_ Вроде нужно так: extern "C" void __stdcall твоя_функция (void) |
|
|
Дата: Сен 3, 2004 16:31:02 Kozyr ... да , так и есть...получилочь! :) Спасибо! |
|
|
Дата: Сен 4, 2004 03:56:29 > extern "C" void __stdcall твоя_функция (void) это Си++, а на Си такое уже не прокатит ;) это во-первых тип вызова должен быть задан явно. это во-вторых. в третьих, Си в отличии от Си++ не требует никаких extern'ов, достаточно лишь просто описать прототип функции. вот пример как это можно сделать на масме. кстати говоря, использовать stdcall неразумно. уж лучше fastcall - он передает аргументы через регистры, правда порядок передачи варьируется от компилятора к компилятору _166048313__lib.zip |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.059 |