小编zgn*_*zgn的帖子

并排配置错误,无法解析参考mscorlib

我有delphi应用程序(hostproject.exe),我想使用注册免费技术消耗.net com对象(NetSide.dll).

应用程序启动时,显示并排配置错误和sxtrace日志:

无法解析引用mscorlib,publicKeyToken ="b77a5c561934e089",version ="4.0.0.0".

hostproject.exe.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>    
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="client" version="1.0.0.0" />
  <dependency>
      <dependentAssembly>
          <assemblyIdentity type="win32" name="NetSide.sxs" version="1.0.0.0" processorArchitecture="msil"/>
      </dependentAssembly>
  </dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)

NetSide.sxs.manifest

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<assembly xmlns="urn:schemas-microsoft-com:asm.v1" manifestVersion="1.0">
  <assemblyIdentity type="win32" name="NetSide.sxs" version="1.0.0.0"  processorArchitecture="msil"/>
  <clrClass clsid="{E6C4A866-F58C-415E-9745-E0E7812B4386}" progid="NetSide.Class1" threadingModel="Both" name="NetSide.Class1" runtimeVersion="v4.0.30319"/>
  <file name="NetSide.dll" hashalg="SHA1"/>   
  <dependency>
    <dependentAssembly>
        <assemblyIdentity name="mscorlib" version="4.0.0.0"  processorArchitecture="x86"  publicKeyToken="b77a5c561934e089"/>
    </dependentAssembly>
  </dependency>
</assembly>
Run Code Online (Sandbox Code Playgroud)

sxstrace日志如下:

=================
Begin Activation Context Generation.
Input Parameter:
    Flags = 0
    ProcessorArchitecture = Wow32
    CultureFallBacks = en-US;en
    ManifestPath = …
Run Code Online (Sandbox Code Playgroud)

c# delphi com winapi

5
推荐指数
1
解决办法
658
查看次数

如何访问记录属性?

我需要访问,记录属性,并设置/获取此属性值.首先,我想访问属性.但我不能.

怎么了?Ver:Delphi XE6.

示例代码:

type
  TmyRecord = record
  private
    Str : String;
  public
    property StrProp :String read Str;  
  end;


procedure TForm1.Button3Click(Sender: TObject);
var
 c : TRttiContext;
 t : TRttiType;
 field : TRttiField;
 prop : TRttiProperty;
begin
 c := TRttiContext.Create;
 try
   Memo1.Lines.Append('Fields');
   for field in c.GetType(TypeInfo(TMyRecord)).GetFields do
   begin
     t := field.FieldType;
     Memo1.Lines.Append('Field:'+field.Name);
     Memo1.Lines.Append('RttiType:'+t.ClassName);
   end;

   Memo1.Lines.Append('Properties');
   for prop in c.GetType(TypeInfo(TMyRecord)).GetProperties do
   begin
     t := prop.PropertyType;
     Memo1.Lines.Append('Property:'+prop.Name);
     Memo1.Lines.Append('RttiType:'+t.ClassName);
   end;

 finally
   c.Free
 end;

end;
Run Code Online (Sandbox Code Playgroud)

delphi record rtti

1
推荐指数
1
解决办法
891
查看次数

如何禁用Delphi 10.1 Berlin的PopupMenu/Menu的VCL样式?

如何禁用Delphi 10.1 Berlin的PopupMenu/Menu的VCL样式?

因为长菜单无法正常运行.所以,我想将windows样式用于菜单/弹出菜单项.

这可能吗?

delphi vcl-styles

1
推荐指数
1
解决办法
515
查看次数

具有类功能的类型转换

我想要使​​用类函数进行类型转换.我有基(TBase),派生(TDer)和类型转换(TMyType)类.

Ver:Delphi 7

TBase = class;
TDer = class;
TMyType = class;

TBase = class
  function Say : String;
  class function MYType:TMyType;
end;

TDer = class(TBase)
  a: string;
  b: string;
  function Say2 : String;
end;

TMyType=class(TBase)
  class function AsDer:TDer;
end;

{ TBase }

class function TBase.MYType: TMyType;
begin
  Result:=TMyType(Self);
end;

function TBase.Say: String;
begin
   Result:='TBase';
end;

{ TDer }

function TDer.Say2: String;
begin
  Result:='TDer';
end;

{ TMyType }

class function TMyType.AsDer: TDer;
begin
  Assert(Assigned(Self));
  Result := TDer(Self) ;
end;
Run Code Online (Sandbox Code Playgroud)

示例用法如下,它是调用方法,但是当设置/获取字段的引发错误时. …

delphi casting

-1
推荐指数
1
解决办法
624
查看次数

标签 统计

delphi ×4

c# ×1

casting ×1

com ×1

record ×1

rtti ×1

vcl-styles ×1

winapi ×1