Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Различие DLL С++ Builder и Delphi

16K
20 апреля 2006 года
rsn
5 / / 19.04.2006
* Предыстория вопроса.

Необходимо собрать DLL, функции которой будут экспортироваться в программу на языке Avenue платформы ArcView.

Проблема в том, что сборка DLL в Delphi 7.0 подключается в Avenue, а сборка в C++ Builder 6.0 - нет.

Тестовые примеры.

[color=green]DLL C++ Builder 6.0[/color]
Код:
Unit1.cpp

#include <vcl.h>
#pragma hdrstop
#pragma argsused
int WINAPI DllEntryPoint(HINSTANCE hinst, unsigned long reason, void* lpReserved) {
    return 1;
}
#include "Unit1.h"
void __stdcall test() {
    ShowMessage("Привет, мир!");
}

Unit1.h

#ifndef _Unit1_h
#define _Unit1_h
#ifdef __DLL__
#define DLL_EI __declspec(dllexport)
#else
#define DLL_EI __declspec(dllimport)
#endif
extern "C" void DLL_EI __stdcall test();
#endif


[color=red]DLL Delphi 7.0[/color]
Код:
Project1.dpr

library Project1;

uses
  SysUtils,
  Classes,
  Dialogs;

{$R *.res}

procedure test(); stdcall;
begin
  ShowMessage('Привет, мир!');
end;

exports
  test;

begin
end.


Теперь получаемая структура экспорта DLL.
Цитата:
impdef project1.def project1.dll



[color=green]DLL C++ Builder 6.0[/color]

 
Код:
LIBRARY     PROJECT1.DLL


EXPORTS
    ___CPPdebugHook                @2   ; ___CPPdebugHook
    test                           @1   ; test


[color=red]DLL Delphi 7.0[/color]
 
Код:
LIBRARY     PROJECT1.DLL

EXPORTS
    test                           @1   ; test

Подскажите, в чем разница? Если все-таки различие есть, как на C++ Builder 6.0 осуществить аналогичную сборку?
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог