В Вашей dll нет функции ConnectSQL. Ошибка 127 об этом и говорит "The specified procedure could not be found."
Возможно, имя "испорчено". Заведите в Вашем проекте def-файл и перечислите в нём экспортируемые функции
Возможно, имя "испорчено". Заведите в Вашем проекте def-файл и перечислите в нём экспортируемые функции
raxbat, Каким компилятором пользуетесь? Приведите объявление функции 'ConnectSQL'
У меня тоже вопрос по DLL
А может и более общий, пока не ясно.
Кодом библиотеки cоздаю МТС в виде объекта c методами, полями. Обычный объект, в общем, глобально видимый и с глобальным временем жизни. Создается он как классический Синглтон ( Singleton ).
Создавал МТС именно по этому шаблону проектирования, понадеявшись на то, что с приходом нового тика и вызовом любой функции из библиотеки, смогу обновить- поднастроить ранее созданный в оперативной памяти объект. Но вся неприятность в том, что с новым тиким объект приходистся создавать заново, т.е синглтон не находя себя ранее созданного и настроенного, создает свеженький, нулевой вариант.
Как сделать, чтобы настройки объектов не затирались? Есть ли способ сделать это без сохранения состояния объекта в файл по завершении его настройки в соответствии с пришедшим тиком и загрузки ранее сделанных настроек по приходящему тику?
А может и более общий, пока не ясно.
Кодом библиотеки cоздаю МТС в виде объекта c методами, полями. Обычный объект, в общем, глобально видимый и с глобальным временем жизни. Создается он как классический Синглтон ( Singleton ).
Создавал МТС именно по этому шаблону проектирования, понадеявшись на то, что с приходом нового тика и вызовом любой функции из библиотеки, смогу обновить- поднастроить ранее созданный в оперативной памяти объект. Но вся неприятность в том, что с новым тиким объект приходистся создавать заново, т.е синглтон не находя себя ранее созданного и настроенного, создает свеженький, нулевой вариант.
Как сделать, чтобы настройки объектов не затирались? Есть ли способ сделать это без сохранения состояния объекта в файл по завершении его настройки в соответствии с пришедшим тиком и загрузки ранее сделанных настроек по приходящему тику?
Скорее всего, ошибка в коде.
Должно работать без проблем.
Должно работать без проблем.
для начала просто почитать книжку по Си, и осмыслить содеянное .. мест масса,
можно здесь к примеру: http://cylib.iit.nau.edu.ua/Books/Prog/C++/VisualC++/beginers/visual/12.html
можно здесь к примеру: http://cylib.iit.nau.edu.ua/Books/Prog/C++/VisualC++/beginers/visual/12.html
для начала просто почитать книжку по Си, и осмыслить содеянное .. мест масса,
можно здесь к примеру: http://cylib.iit.nau.edu.ua/Books/Prog/C++/VisualC++/beginers/visual/12.html
можно здесь к примеру: http://cylib.iit.nau.edu.ua/Books/Prog/C++/VisualC++/beginers/visual/12.html
Спасибо за книгу. Она мне даже понравилась поначалу.
Может быть поясните пару непонятых в ней моментов?
Меня заинтересовала возможность объявленные переменных общими для нескольких процессов.
При компиляции строки предложенного там решения
#pragma comment(lib,"msvcrt" "-SECTION:.myseg,rws");
выдается ошибка.
Скорее всего, ошибка в коде.
Должно работать без проблем.
Должно работать без проблем.
Меня смущает один момент при отладке библиотеки: в функции dllMain постоянно происходит
DLL_THREAD_ATTACH DLL_THREAD_DETACH.
В зависимости от постановки задачи есть множество путей хранения общ. переменных,
к примеру простецкий и христоматийный CreateFileMapping/Map-UnmapViewOfFile .. можно и через
разделяемую память (уже где-то обсуждалось на форуме), можно через каналы, если это просто
синхронизация между процессами, то использование семафоров, можно глобально распредлить
volatile-переменные, так и блоки памяти, если известны id окон, можно и просто сообщениями.
к примеру простецкий и христоматийный CreateFileMapping/Map-UnmapViewOfFile .. можно и через
разделяемую память (уже где-то обсуждалось на форуме), можно через каналы, если это просто
синхронизация между процессами, то использование семафоров, можно глобально распредлить
volatile-переменные, так и блоки памяти, если известны id окон, можно и просто сообщениями.
В зависимости от постановки задачи есть множество путей хранения общ. переменных,
к примеру простецкий и христоматийный CreateFileMapping/Map-UnmapViewOfFile .. можно и через
разделяемую память (уже где-то обсуждалось на форуме), можно через каналы, если это просто
синхронизация между процессами, то использование семафоров, можно глобально распредлить
volatile-переменные, так и блоки памяти, если известны id окон, можно и просто сообщениями.
Когда есть много окон, процессов и всего прочего..
Но ведь у меня до предела простой случай.
Окно инструмента одно, к нему прикреплен соеетник- один, к нему dll- ка - одна в ней функция- одна)))))
та функция вызывает указатель на синглтон-объект. Ну а что дальше.. именно с этого я и начинал.
Все что написано безусловно полезно и нужно и каналы с семафорами в том числе, но я немного почитав про это делаю вывод что проблема в другом, но в чем, остается непонятным.
Меня заинтересовала возможность объявленные переменных общими для нескольких процессов.
Мне кажется автор не четко понимает что и для чего он хочет.
Есть способы решения, а есть инструменты для, что я и предложил.
Вы упускаете торговые возможности:
- Бесплатные приложения для трейдинга
- 8 000+ сигналов для копирования
- Экономические новости для анализа финансовых рынков
Регистрация
Вход
Вы принимаете политику сайта и условия использования
Если у вас нет учетной записи, зарегистрируйтесь
2007.10.23 13:08:14 Expert LD EURUSD,H1: cannot call function 'ConnectSQL' from dll 'MSSQLprj.dll' (error 127)
#import "MSSQLprj.dll"
string ConnectSQL(string sServer, string sDB);
bool DisconnectSQL();
void ExecuteSQL(string sDatiSQL);
#import
...
int start()
{
.......
ConnectSQL("IT_LD_BIG", "fx");
.....
?