DLL в С++ | |
---|---|
Pavel_Yu Автор Сообщений: 171 Откуда: Сергие Посад Дата регистрации: 19.11.2004 |
Как в С++ написать DLL, чтобы она принимала текстовый параметр и изменяла его (т.е. принимала по ссылке).
Я пишу в С++: int __export __stdcall NewMess (char *out) { out='1234567890'; return sizeof(out); А в Фоксе: DECLARE integer NewMess IN MyDll String @ cCode= space(120) retCode = NewMess(@cCode) MESSAGEBOX(retCode) Messagebox(cCode) Первое сообщение выдает 4 (я так понял это ссылка), а второе сообщение пробелную строку(т.е. перемення не изменилась, а должна содержать '1234567890' |
Re: DLL в С++ | |
---|---|
Влад Колосов Сообщений: 22664 Откуда: Ростов-на-Дону Дата регистрации: 05.05.2005 |
Разве строка должна вернуться не командой return? Почему возвращается ее размер вместо строки?
А, понятно, надо по ссылке вернуть... ------------------ Совершенство - это не тогда, когда нельзя ничего прибавить, а тогда, когда нечего убавить. Исправлено 1 раз(а). Последнее : Влад Колосов, 23.05.06 18:08 |
Re: DLL в С++ | |
---|---|
Pavel_Yu Автор Сообщений: 171 Откуда: Сергие Посад Дата регистрации: 19.11.2004 |
Вроде командой return не получается, т.к. можно использовать для возврата простые типы, символов можно только один.
|
Re: DLL в С++ | |
---|---|
NSF Сообщений: 3853 Откуда: Пермь Дата регистрации: 21.01.2005 |
MFC не устраивает? если да, то ходи сюда: forum.foxclub.ru + объявление для приведенного мной там примера:
------------------ откапываю! |
Re: DLL в С++ | |
---|---|
nnt64 Сообщений: 306 Откуда: С-Петербург Дата регистрации: 02.03.2006 |
Поправочка: ********************** .cpp #include "dlltst.h" #include <stdexcept> using namespace std; namespace dlltst { int retstr(char *str) { // Обязательно strcpy(memcpy) - тебе ж данные надо по своему адресу // @str передать str = strcpy(str, "1234567890"); return strlen(str); } } ******************************** .h namespace dlltst { class dlltst { public: // Returns length static __declspec(dllexport) int int __stdcall retstr(char* str); }; } **************************** .def LIBRARY DLLTST EXPORTS retstr @1 ************************************ VFP declare integer retstr in dlltst string @ lcs = space(10) ? retstr(@lcs) ? lcs а вообще, через Fox API - лучше Исправлено 1 раз(а). Последнее : nnt64, 25.05.06 10:57 |
Re: DLL в С++ | |
---|---|
AlexK Сообщений: 2114 Откуда: Королев,Москва Дата регистрации: 11.12.2000 |
В MFC:
extern "C" AFX_EXT_API int WINAPI func1(char *fname); extern "C" AFX_EXT_API int WINAPI func1(CString &fname); ------------------ Береги природу, мать Вашу. Моя страничка www.genrep.net |
© 2000-2024 Fox Club  |