Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Достаточно много функций API ненамного сложнее вашего примера, и большинство возвращают 0 в случае ошибки. Сложение двух чисел тоже может вызвать ошибку - неверные параметры, переполнение. API не возвращают логический результат в формате Фокспро. Я не понял, почему результат нельзя вернуть по ссылке, именно как третий параметр. Да и функционал начинается с малого, и состоит из таких мелочей. |
Re: Создать DLL на С++ | |
---|---|
Перминов Игорь Сообщений: 1591 Откуда: Красная Орловка Дата регистрации: 16.09.2001 |
Это всего лишь тестовая функция, для понимания того, как правильно вызвать написанное на VS 2015 C++ и собранное в DLL из VFP 9.0 sp2, потому как разные высокоуровневые языки (MS C++, Borland C++, WatCom C++ это то с чем мне пришлось столкнуться) ведут себя по разному при компиляции в DLL, почитайте внимательно мой первый пост. Никакого отношения к API это не имеет. ------------------ Без коментариев.. |
Re: Создать DLL на С++ | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Смотря для чего "подходит". Для использования с некоторыми винАПИ функциями в программе - да. Для тестирования самодельной функции - при том что она ни разу не BOOL, и даже не целое число возвращает - естественно нет. DECLARE может сгенерировать ошибку? Ответив на этот вопрос, все прочие вопросы про try отпадут. А вы их считали, достойнейший вы наш? Вы вообще имеете хоть малейшее представление о том, сколько функций имеется в винде? И какая их часть возвращает значение типа BOOL или, на худой конец, какого-либо рода "адрес" типа LPVOID, чтобы можно было говорить о том что "0 это ошибка"... Я вот с ходу могу полсотни АПИ функций указать, которые вовсе не 0 возвращают в случае ошибки. И вообще то что они возвращают НЕ является каким-то "признаком успешности работы", а самым что ни на есть обыкновенным ЗНАЧЕНИЕМ - так же как в примере тёзки возвращается сумма 2-х вещественных чисел. Или как обычно, сказанули полнейшую глупость с важным видом - авось никто не заметит ------------------ WBR, Igor |
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Igor Korolyov
Чтобы прекратить ваши мучения ... Вот процедура, позволяющая в фоксе работать с функциями Winapi как со своими родными безо всяких оберток: Можете проверить на нескольких простых примерах из текстового файла, или написать свои: Примерно также, но посложнее, можно работать со структурами и функциями как со своими родными, только написанными в формате C++ , но мне просто неохота без нужды и смысла доделывать эти процедуры. |
Re: Создать DLL на С++ | |
---|---|
Taran Автор Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ух как все по серьезному. И как я раньше жил без этого?
Пиво пил, Камеди клаб смотрел. |
Re: Создать DLL на С++ | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Очередная куча малополезного и ущербного кода...
Для особо непонимающих русский язык - у меня НЕТ никаких затруднений. И для работы с WinAPI я более чем замечательно управляюсь куда как более очевидными и простыми конструкциями. Городить огород на полсотни строк плюс какие-то текстовые файлы на птичьем языке (ага, называется найди ошибку/опечатку), когда всё решается вообще ЭЛЕМЕНТАРНО - при том безо всяких макро и evaluate... 3 строки простейшего, легко понимаемого и отлаживаемого кода, против 70+ строк неочевидного, да ещё и некорректного кода, каких-то невнятных текстовых описаний АПИ функций (свой язык программирования - ога, наиполезнейшая вещь), MESSAGEBOX явно прописанных в системной по своей сути функции, public переменной совершенно неочевидного назначения (таки это НЕ "признак ошибки"), отсутствия каких либо обработок ошибок (для "непонимающих" - достаточно в текстовом файле описАться в одной букве - в ЛЮБОМ месте файла - как получаем элементарное вываливание их этого поделия по ошибке). А касательно "можете проверить" - да бога ради
Более того, если прописать к примеру lcBuf = REPLICATE("A", 200) то получим в итоге строку из 200 символов где в начале будет имя windows папки, но после него будет куча этих самых "A". Просто потому что кто-то не может прочесть элементарного текста, и понять что то что возвращает эта функция это ДАЛЕКО не только "признак ошибки". Да тривиально - взять и в текстовом файле допустить "опечатку" - в строке после этой самой GetWindowsDirectory вместо STRING прописать STIRNG - и поглазеть как это всё замечательно обрабатывается данным кодом. Ну что сказать, "непризнанный гений". Диагноз точно поставили И, боюсь, что лечению не подлежит P.S. Более допиливать куски вашего г*нокода для того чтобы их банально можно было вставить в prg файл и запустить я, конечно же, не стану. Не в состоянии выложить то что не нуждается в дописывании и исправлении - не рассчитывайте что кто-то будет это пытаться запустить. ------------------ WBR, Igor |
Re: Создать DLL на С++ | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
(в си однако, больше способов ошибиться, чем в фоксе, возможно...)
|
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Igor Korolyov
Не зря я посоветовал вам освоить сначала простые функции. С DECLARE ... вы получите тоже самое.
А STIRNG функция не должна обрабатывать, пишите грамотно - это txt-файл, а не код в prg. Или отладьте свой обработчик ошибок, как я вам однажды посоветовал. Исправлено 1 раз(а). Последнее : lulgu, 26.03.17 00:06 |
Re: Создать DLL на С++ | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Грамотный ведь, lulgu, строковые операции розумеет, и к АПИ обращаться умеет. Нормальный он )
|
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
При использовании формата C++ функция просто копируется из MSDN, ошибиться трудно. Там проблема посерьезнее - типы данных, одни сюрпризы. |
Re: Создать DLL на С++ | |
---|---|
of63 Сообщений: 25161 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Да, тяжело. Надо держаться )
|
Re: Создать DLL на С++ | |
---|---|
Taran Автор Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вы че прикалываетесь все или издеваетесь надо мной?
Ну не может эта функция (метод конечно) работать нигде. Просто не зачем. То что трольский вброс сделан качественно - это признаю. И придумка и не лень. Игорь. Будь другом намекни в чем может быть полезна данная функция. Чет туплю. Ну не верю, что это реально кто-то использует. |
Re: Создать DLL на С++ | |
---|---|
SoccerStudio Сообщений: 5055 Откуда: Подмосковье Дата регистрации: 28.11.2006 |
Игорь, вот скажи по секрету - откуда у тебя столько времени и терпения? ------------------ "Здесь я, братцы, сдержу матерщину, и скажу только "... мать!"" (с) Шаов |
Re: Создать DLL на С++ | |
---|---|
Taran Автор Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Ну Макс, это ж просто. Он просто памятник. Гранитный. Потому видимо, как выясняется, и соображает не очень. Не очень спеша. |
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
Ребята, для флуда есть курилка, не теряйте берега.
SoccerStudio Мы можем с вами вернуться к вашей любимой теме GdiPlus, где вас попросили нарисовать несколько квадратиков. forum.foxclub.ru Taran Для этого надо сначала освоить хотя бы простые функции. |
Re: Создать DLL на С++ | |
---|---|
Taran Автор Сообщений: 13623 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Да я бы рад, но не знаю с чего начать освоение. Так и пишу до сих пор на dBase-2. Боюсь что на Robotron-1715 фокс не установится. |
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
|
Re: Создать DLL на С++ | |
---|---|
pasha_usue Сообщений: 3647 Откуда: Е-бург Дата регистрации: 06.10.2006 |
Как только у вас заканчиваются аргументы и вы начинаете отходить от темы, с вами становится абсолютно неинтересно разговаривать. Поэтому я начинаю с вами разговаривать вашим же языком. Пришлось, правда перечитать 188 тем на Sql.Ru, что б досконально ваш язык и уровень аргументации выучить. (;Ж |
Re: Создать DLL на С++ | |
---|---|
lulgu Сообщений: 1838 Дата регистрации: 30.11.2016 |
pasha_usue
Помогли бы лучше ИК найти системную директорию. И у вас были какие-то проблемы с функцией MakeLong, можете и ее проверить. |
Re: Создать DLL на С++ | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Что поделать, глубокая формой умственной отсталости... Вероятно, С++ видел лишь на картинке.
Полагаю что на сём можно закончить с данным кадром. Он даже троллить то не умеет. Не говоря о чём то более практичном. ------------------ WBR, Igor |
© 2000-2024 Fox Club  |