Вопрос : Проходить parm PChar к DLL

Я писал DLL с функцией принимает параметр PChar и возвращает булевское. Когда я вызываю функцию от испытания app он всегда приходит вверх с AV. Я теперь уменьшал его к свое самому основному как под но все еще получаю myDLLFunction AV.

function (szText: PChar): Булевско; stdcall; результат
begin
: = True;
end; звоноки app испытания

My оно любит это:

procedure TForm1.Button1Click (Sender: TObject);
var
  szText: PChar;
begin
  szText:= «некоторый текст»;
если showmessage, то then
myDLLFunction (szText) («ОДОБРЕНН ");
end;

I также заменяло ть вызывая PChar с блоком чарса но такого же результата. Я нов к DLLs и PChar. Я делая что-то тупоумн?
class=

Ответ : Проходить parm PChar к DLL

Вы объявляете его правильн?
Это работает для меня.
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
46:
47:
48:
49:
50:
51:
52:
53:
54:
55:
56:
57:
58:
59:
60:
61:
62:
63:
64:
65:
66:
67:
68:
69:
70:
71:
72:
73:
Project1, Unit1:

блок Unit1;

поверхность стыка

пользы
  Windows, сообщения, SysUtils, варианты, типы, графики, управление, формы,
  Диалоги, StdCtrls;

тип
  TForm1 = тип (TForm)
    Button1: TButton;
    процедура Button1Click (прислужник: TObject);
  приватно
    {Приватные объявления}
  публика
    {Общественные объявления}
  конец;

var
  Form1: TForm1;

вставка

{$R *.dfm}

myDLLFunction функции (szText: PChar): Булевско; stdcall; external «project2.dll»;

процедура TForm1.Button1Click (прислужник: TObject);
var
  szText: PChar;
начните
  szText: = «некоторый текст»;
  если myDLLFunction (szText) после этого
    showmessage («ОДОБРЕНН ");
конец;

конец.

=======================

Проект 2, одиночное dpr:

архив Project2;

{Важное примечание о управлении памяти DLL: ShareMem должно быть
  первый блок в клаузуле ПОЛЬЗ вашего архива И вашем проекте (отборных
  Источник Проект-Взгляда) ИСПОЛЬЗУЕТ клаузулу если ваш DLL ехпортирует любые процедуры или
  функции проходят шнуры в параметры или результаты функции. Это
  применяет к всем шнурам ым к и от вашего DLL--даже те то
  гнездитесь в показателях и типах. ShareMem будет блоком поверхности стыка к
  менеджер делят памяти BORLNDMM.DLL, котор, который необходимо раскрыть вперед
  с вашим DLL. Для избежания использовать BORLNDMM.DLL, проходите данные по шнура
  using параметры PChar или ShortString. }

пользы
  SysUtils,
  Типы;

{$R *.res}

myDLLFunction функции (szText: PChar): Булевско; stdcall;
начните
   Результат: = True;
конец;

экспорты
  myDLLFunction;

начните

конец.
Другие решения  
  •  Как я добавляю кнопки на форме PDF для того чтобы добавить/извлекаю рядки данных?
  •  Шнур ошибки в блоке задвижки?
  •  сколько вариант сервера SQL на одной машине
  •  Внешний вид 2007 не может архивный файл открытой сети сохраненный
  •  Активно директория DNS записывает вопрос
  •  Отчет о доступа 2010 экспорта к CSV с коллекторами?
  •  Прокладчик OCE 9400 не начинает
  •  как добавить десятичное место в формуле в отчете о кристалла seagate
  •  Windows XP и Мичрософт Оутлоок и проблемы установителя Windows
  •  VB6 к VS2010 - консультации тренировки?
  •  
    programming4us programming4us