Я пытаюсь скомпилировать Этот пример для неуправляемого экспорта в XE, но я получаю (PE9) Неизвестный идентификатор "UnmanagedExport" ошибка при сборке.
- В разделе «Совместимость» выберите «Разрешить небезопасный код»
- В разделе «Сборка» найдите общий раздел и измените тип процессора на «x86»
- Щелкните правой кнопкой мыши на созданной вкладке «ClassLibraryX» и выберите «Сохранить выбранные элементы»
namespace exptest;
interface
uses
System.Runtime.InteropServices;
type
clstest = public static class
private
protected
public
[UnmanagedExport('xmsg',CallingConvention.StdCall)]
function xmsg(amsg : String):String;
end;
implementation
function clstest.xmsg(amsg: String):String;
Begin
Result := amsg + ' mesajı için geri dönüş';
end;
end.
Окно ошибок
Есть идеи?
@ Дэвид: Спасибо за ответ. Я попробовал твой совет
public
[UnmanagedExport('xmsg',CallingConvention.StdCall)]
class method xmsg(amsg : String):String;
end;
implementation
class method clstest.xmsg(amsg: String):String;
Begin
Result := amsg + ' mesajı için geri dönüş';
end;
но та же ошибка продолжается.
@ Давид 2:):
Я изменил код следующим образом:
namespace exptest;
interface
uses
RemObjects.Oxygene.System;
type
clstest = public class
private
protected
public
[UnmanagedExport('xmsg',CallingConvention.StdCall)]
class method xmsg(amsg : String):String;
end;
implementation
class method clstest.xmsg(amsg: String):String;
Begin
Result := amsg + ' mesajı için geri dönüş';
end;
end.
Та же ошибка:)
@ Дэвид 3
namespace exptest;
interface
uses
RemObjects.Oxygene.System,System.Runtime.InteropServices;
type
clstest = public class
private
protected
public
[UnmanagedExport('xmsg',CallingConvention.StdCall)]
class method xmsg(amsg : String):String;
end;
implementation
class method clstest.xmsg(amsg: String):String;
Begin
Result := 'a return value for '+amsg ;
end;
end.
все та же ошибка. :, (
Можете ли вы примерить мне призму ide моего образца проекта для меня, пожалуйста? Спасибо за ответы.
C:\Program Files\Embarcadero\Delphi Prism\bin>oxygene -version
RemObjects Oxygene for .NET - Version 4.0.25.791
Copyright RemObjects Software 2003-2009. All rights reserved.
Exclusively licensed for Delphi Prism.
Configuration Release not found
моя версия oxygene 4.0.25.791, я полагаю.
..............................
@ Дэвид: Я тоже пытался скомпилировать в командной строке. вот результаты
C:\Documents and Settings\XPMUser\Desktop\exptest\exptest>oxygene /allowunsafe:y
es /type:library /cputype:x86 clstest.pas
RemObjects Oxygene for .NET - Version 4.0.25.791
Copyright RemObjects Software 2003-2009. All rights reserved.
Exclusively licensed for Delphi Prism.
Preparing resources...
Compiling...
C:\Documents and Settings\XPMUser\Desktop\exptest\exptest\clstest.pas(14,22) :
Error : (PE9) Unknown identifier "UnmanagedExport"
Exiting with 1.
C:\Documents and Settings\XPMUser\Desktop\exptest\exptest>
вероятно, ваше право. возможно что-то не так с моим компилятором. Но я не увидел никакой ошибки во время установки призмы Delphi.
@ Руди: До этого меня судили VS2010. Как я сказал. Может быть, я переустановить Delphi Prism или попробовать другую машину. Я напишу результаты, если решите.