AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск Все разделы прочитаны

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.10.2012, 11:34   #1  
York is offline
York
Участник
 
8 / 12 (1) ++
Регистрация: 11.08.2008
? dll в Ax 3.0
Добрый день, уважаемые знатоки.

В Visual Studio есть такой проект C++:
Файл DLLTest.h :
Код:
int Add(int a, int b);
int Get();
Файл DLLTest.cpp :
Код:
// DLLTest.cpp
// compile with: /EHsc /LD

#include "DLLTest.h"

#include <stdexcept>

using namespace std;

int Add(int a, int b)
{
    return a + b;
}

int Get()
{
    return 33;
}
и файл DLLTest.def :
Код:
LIBRARY	"DLLTest"
EXPORTS
Add
Get
В Axapta 3.0 написал такой джобик:
X++:
static void GJ_DLLTest2(Args _args)
{
    DLL dll = new DLL("C:\\DLLTest.dll");
    DLLFunction fAdd, fGet;
    int r;
;
    //-------------------------------------
    fGet = new DLLFunction(dll, "Get");
    fGet.returns(ExtTypes::DWord);

    r = fGet.call(); // отрабатывает "на ура"

    info(queryValue(r)); // возвращает 33
    //-------------------------------------
    fAdd = new DLLFunction(dll, "Add");
    fAdd.returns(ExtTypes::DWord);
    fAdd.arg(ExtTypes::DWord,ExtTypes::DWord);

    r = fAdd.call(1,2); // ОШИБКА!!!

    info(queryValue(r));
    //-------------------------------------

    fAdd.finalize();
    fGet .finalize();
    dll.finalize();
}
В первом случае вызова функции без параметров отрабатывает правильно.
Во втором случае, где производится попытка вызова функции с параметрами, выдает следующее сообщение:
Цитата:
Значение регистра ESP не было сохранено при вызове функции "Add" в библиотеке DLL "C:\DLLTest.dll". Причиной может являться вызов функции DLL, которая объявлена с неверным числом аргументов.
Читал темы на форуме по похожей проблеме, то так и не помогло понять: где я не прав. Сразу скажу, что в C++ и Viasual Studio я полнейший профан.

Направьте, пожалуйста, на путь истинный )))

Последний раз редактировалось York; 11.10.2012 в 11:45. Причина: не верно процитировал def
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
MSDAX 4.0 и планировщик win server 2008 werov2010 DAX: Администрирование 11 16.08.2012 14:18
emeadaxsupport: New Content for Microsoft Dynamics AX 2012 : October 2011 Blog bot DAX Blogs 0 27.10.2011 17:11
axinthefield: Dynamics AX Event IDs Blog bot DAX Blogs 0 01.03.2011 22:11
daxdilip: Whats New in Dynamics AX 2012 (A brief extract from the recently held Tech Conf.) Blog bot DAX Blogs 7 31.01.2011 12:35
axStart: Microsoft Dynamics AX 2009 Hot Topics Web Seminar Series Blog bot DAX Blogs 0 06.08.2008 12:05
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 00:44.