Отладка прог MetaTrader 4 с помощю Microsoft Visual C++ 2010 Express. - страница 4

 
Я отходил, папа присаживался.
 
Так я так и делал. Ей богу, я так и делал. Я щас детали может уточню. А пока 2013.12.17 23:19:09 Скриптдела USDCHF,M5: cannot call function 'fn' from dll 'DLLproect.dll' (error 127)

 

Меняете расширение на .def, кидаете его к .cpp и .h проекта. - Да, это понятно. Я так и делал.

Добавляете файл в обзор проекта (слева, где отображаются файлы в студии). Вписывайте имя вашего def файла в: свойства проекта/компоновщик/ввод/файл определения модуля. -Не совсем понял, щас таки еще попробую сделать.

 
Подождите, счас попробую сделать еще.
 

Второй вариант (без def файла, cdecl вместо stdcall):

1. В одном из .cpp файлов пишите

#include <windows.h>

extern "C" void fn2(char *str) 
{
   MessageBoxA(NULL, str, "", MB_OK);
}

2. Компилируйте, .dll должна оказаться в MT\experts\libraries.

3. Создаете скрипт с кодом

#import "<имя вашей dll>"

   void _fn2(string var);
   //void fn2(string var);   // Если не получится вариант с подчеркиванием, то пробуем без подчеркивания

int start()
  {
//----
   _fn2("Hello dll");
   //fn2("Hello dll");
//----
   return(0);
  }                                                                                                                                             
 
Из обозревателя решений открылось дополнительное окно -прикольно, рассматриваю!
 

Позвольте уточнить.

2. Компилируйте, .dll должна оказаться в MT\experts\libraries. Я вообще из проекта ее копирую- и переношу в MT\experts\libraries вручну, мышкой- это нормально?

 
Если нужно, я могу свой проект заархивировать и попробовать выложить.
 

абсолютно нормально.

По рисунку: правый клик по DLLproject в обозревателе решений и ищем свойства проекта/компоновщик/ввод/файл определения модуля

 
Счас отпишусь о втором варианте, который вы предложили.