Шаг 17 - DLL на VC для ArcView

Создать дополнительные функции для использования в Avenue можно только на C++. К сожалению DLL созданые на VB работать не будут. Итак, создаем Win32 Dll используя AppWizard.

17_1.gif (1362 b)

На вопрос о типе отвечаем Simple.Dll. Пишем код и собираем проект.

// TestDLL.cpp : Defines the entry point for the DLL application.
//

#include "stdafx.h"

BOOL APIENTRY DllMain( HANDLE hModule, 
                       DWORD  ul_reason_for_call, 
                       LPVOID lpReserved
					 )
{
    return TRUE;
}

extern "C"
{
__declspec(dllexport) void  ShowMsg(char* chrMessage)
{
  char chrTitle[30] = "Windows API MessageBox";
  MessageBox(NULL, chrMessage, chrTitle, MB_APPLMODAL);

}
}

Все можно вызывать из Avenue

myDLL = DLL.Make("c:\TestDLL.dll".AsFileName)
message = DLLProc.Make(myDLL, "ShowMsg", #DLLPROC_TYPE_VOID,
					{ #DLLPROC_TYPE_STR})
DLL.SetRefresh(True)
message.Call({"HELLO_VC"})

А вот результат выполнения.

17_2.gif (4335 b)

Мы создали объект DLL, указатель на функцию и вызвали саму функцию.


Предыдущий Шаг | Следующий Шаг | Оглавление
Автор Каев Артем - 29.03.2002