Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
Уважаемые коллеги ! Вообще, пишу я на Visual FoxPro, и решил написать на MS VC++ 6.0 махонькую функцию, оформить ее в виде DLL и вызывать из VFP. О С++ знания у меня примитивные, но не обессудьте за глупые вопросы. Написал на С функцию, отладил - работает, теперь выбираю тип проекта Win32 Dynamik Link Library, ввожу имя, получаю дерево проекта, в файл StdAfx.cpp вставляю, что сам наваял, определив свою ф-цию как void _ff(void), компиляю, вроде компиляется и без ошибок. Пытаюсь зарегистрить в системном реестре : REGSVR32 _MyDll, а он пишет , что не находит точки входа, ну и дальше из ФоксПро, понятно, ничего не вызывается. Думаю, что для уважаемых коллег не составит труда указать на мои ляпы, и в двух словах объяснить, как все таки быстро создать DLL. Заранее всем признателен ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:15 |
|
||
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
Ненадо ее так ! Это же не COM обьект итд ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:21 |
|
||
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
В примерах к VC++ есть проектик "A Simple DLL" - посомтри и сдлеай как там - все будет работать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 15:47 |
|
||
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
Да и ее вовсе не надо регестрировать в системе типа RegSrv32 итд... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2003, 17:40 |
|
||
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
файл stdafx.cpp лучше не трогать - он используется для прекомпилиров. заголовков (ускорение перекомпиляции проекта). лучше добавить в твой проект файл yourname.cpp и yourname.h и с ними работать. Регистрить не нужно - это не COM-сервер. используемые ф-ии в Фоксе нужно будет описать как экспортируемые. ну и боюсь показаться банальным, но скорее всего их нужно будет описать как _stdcall. imho с фоксом не работал, но думаю так. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2003, 10:45 |
|
||
|
Создание DLL
|
|||
|---|---|---|---|
|
#18+
Вот пример: Файл .h для dll #ifndef _DLLTEST_H_ #define _DLLTEST_H_ #include <iostream.h> #include <stdio.h> #include <windows.h> extern "C" __declspec(dllexport) void NumberList(); extern "C" __declspec(dllexport) void LetterList(); #endif //___________________________________________ Файл .cpp для dll #include "dlltest.h" #define MAXMODULE 50 char module[MAXMODULE]; extern "C" __declspec(dllexport) void NumberList() { GetModuleFileName(NULL, (LPTSTR)module, MAXMODULE); cout << "\n\nThis function was called from " << module << endl << endl; cout << "NumberList(): "; for(int i=0; i<10; i++) { cout << i << " "; } cout << endl << endl; } extern "C" __declspec(dllexport) void LetterList() { GetModuleFileName(NULL, (LPTSTR)module, MAXMODULE); cout << "\n\nThis function was called from " << module << endl << endl; cout << "LetterList(): "; for(int i=0; i<26; i++) { cout << char(97 + i) << " "; } cout << endl << endl; } //___________________________________________ Файл cpp в котором вызымаешь функции из dll'ки #include <windows.h> #include <iostream.h> #include <stdio.h> #include <conio.h> #define MAXMODULE 50 typedef void (WINAPI*cfunc)(); cfunc NumberList; cfunc LetterList; void main() { HINSTANCE hLib=LoadLibrary("DLLTEST.DLL"); if(hLib==NULL) { cout << "Unable to load library!" << endl; getch(); return; } char mod[MAXMODULE]; GetModuleFileName((HMODULE)hLib, (LPTSTR)mod, MAXMODULE); cout << "Library loaded: " << mod << endl; NumberList=(cfunc)GetProcAddress((HMODULE)hLib, "NumberList"); LetterList=(cfunc)GetProcAddress((HMODULE)hLib, "LetterList"); if((NumberList==NULL) || (LetterList==NULL)) { cout << "Unable to load function(s)." << endl; FreeLibrary((HMODULE)hLib); return; } NumberList(); LetterList(); FreeLibrary((HMODULE)hLib); getch(); } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.06.2003, 16:59 |
|
||
|
|

start [/forum/topic.php?fid=57&fpage=479&tid=2036268]: |
0ms |
get settings: |
10ms |
get forum list: |
12ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
| others: | 12ms |
| total: | 136ms |

| 0 / 0 |
