2017-11-20 55 views
-1

皆様にお越しのよろしく、 私は今日までに.NETライブラリを使用したことは一度もありません。.NETのあいまいな一致が見つかりました

はじめ

私は、顧客のラベルを印刷するために、(のActiveX経由)NiceLabel 6を使用してアプリケーションをしました。 NiceLabel(2017)の新しいバージョンではこのような技術はサポートされなくなりましたが、.NETでしか動作しません。 私は、Delphi用のCrystalNet .Netランタイムライブラリを使用して.NETライブラリを読み取る.pasユニットを作成しました。 DELPHI

これに用いる

.NET私はCrystalNet製品から作成した.PASユニットを使用し、単純なDelphiのプロジェクトを作成しました。ここで、ソースは次のとおりです。

unit Main; 

interface 

uses 
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, 
    System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, 
    Vcl.StdCtrls, SDK.NET.Interface_; 

type 
    TfrmMain = class(TForm) 
    btnLoadLabel: TButton; 
    procedure btnLoadLabelClick(Sender: TObject); 
    private 
    NLLabel: TILabel; 
    NLLabelOle: OleVariant; 
    public 
    { Public declarations } 
    end; 

const 
    LabelPath = 'C:\Users\Eros\Desktop\nicelabel 2017\codesol\labels\'; 

var 
    frmMain: TfrmMain; 

implementation 

{$R *.dfm} 

procedure TfrmMain.btnLoadLabelClick(Sender: TObject); 
begin 
    NLLabel := SDK.NET.Interface_.TILabel.Create(NLLabelOle); 
end; 

end. 

PROBLEM

Delphiは正しくコンパイルが、私は実行したときに、それはこのエラーを取得IB:

enter image description here

私はこれの英語版を得ることができませんエラーですが、私はそれが "曖昧な一致が見つかりました"のようなものだと思います。 私は問題は理解できません。私は.NETのテーマをとても知らないです。

私はCrystalNetで作成されたユニットに何か問題があると思いますが、何か分かりません。ここで明確にするために、一部は単位を約3.000ラインの長さで生成されて行くで

uses 
    CNClrLib.Host, CNClrLib.Core, CNClrLib.Host.Utils, CNClrLib.Collections, 
    CNClrLib.System, CNClrLib.IO, CNClrLib.Runtime, CNClrLib.Xml, 
    CNClrLib.Drawing, CNClrLib.TypeNames, SDK.NET.Interface_Enums, 
    SDK.NET.Interface_Const; 

type 
{ Forward Declarations } 

    TIVariable = Class; 
    TIFieldList = Class; 
    TIDocumentRevisionArray = Class; 
    TIDocument = Class; 
    TIField = Class; 
    TILabelObjectList = Class; 
    TILabelSettings = Class; 
    TIPrintSettings = Class; 
    TIVariableList = Class; 
    TILabel = Class; 
    TILabelPreviewSettings = Class; 
    TIPrintRequest = Class; 
    TIPrintToGraphicsSettings = Class; 
    TIPrintToGraphicsResult = Class; 
    TILabelObject = Class; 
    TIPageLayout = Class; 
    TIControlCenterProperties = Class; 
    TIPrintServiceSettings = Class; 
    TIDocumentStorage = Class; 
    TISolution = Class; 
    TSDKException = Class; 
    TIPrintEngine = Class; 

    ... 

{ TILabel } 

    TILabel = Class(TClrBaseObject) 
    private 
     function Get_Author: String; 
     function Get_DataSets: _GenericList; 
     function Get_Description: String; 
     function Get_Directory: String; 
     function Get_FileName: String; 
     function Get_FilePath: String; 
     function Get_LabelObjects: TILabelObjectList; 
     function Get_LabelSettings: TILabelSettings; 
     function Get_PrintSettings: TIPrintSettings; 
     function Get_Revision: Integer; 
     function Get_Title: String; 
     function Get_Variables: TIVariableList; 
    public 
     constructor Create(AObjVar: OleVariant); 
     function Clone: TILabel; 
     procedure CreateLabelVariant(outputFileName: String; printTimeDataSourceNames: _StringArray); 
     function CreateXMLLabelInformation: _XDocument; 
     procedure EndSessionPrint(sessionPrintRequest: TISessionPrintRequest); 
     function GetLabelPreview(settings: TILabelPreviewSettings): Olevariant; 
     function Print(quantity: Integer): TIPrintRequest; 
     function PrintAll: TIPrintRequest; 
     function PrintAllAsync: TIPrintRequest; 
     function PrintAsync(quantity: Integer): TIPrintRequest; 
     function PrintToGraphics(settings: TIPrintToGraphicsSettings): TIPrintToGraphicsResult; 
     procedure SaveAs(fileName: String; overwrite: Boolean); 
     procedure SessionPrint(quantity: Integer; sessionPrintRequest: TISessionPrintRequest); 
     procedure SetVariableValues(variablesList: String; ignoreMissingVariables: Boolean); 
     procedure SetVariableValuesXml(variablesList: String; ignoreMissingVariables: Boolean); 
     function StartSessionPrint: TISessionPrintRequest; 
     procedure StoreToPrinter(labelName: String; storeVariant: String); 
     property Author: String read Get_Author; 
     property DataSets: _GenericList read Get_DataSets; 
     property Description: String read Get_Description; 
     property Directory: String read Get_Directory; 
     property FileName: String read Get_FileName; 
     property FilePath: String read Get_FilePath; 
     property LabelObjects: TILabelObjectList read Get_LabelObjects; 
     property LabelSettings: TILabelSettings read Get_LabelSettings; 
     property PrintSettings: TIPrintSettings read Get_PrintSettings; 
     property Revision: Integer read Get_Revision; 
     property Title: String read Get_Title; 
     property Variables: TIVariableList read Get_Variables; 
    end; 


... 

{ TILabel } 

constructor TILabel.Create(AObjVar: OleVariant); 
begin 
    inherited Create(AObjVar); 
end; 

function TILabel.Clone: TILabel; 
begin 
    Result := TILabel(TClrBaseObject.CreateInstance(InvokeMethod('Clone'))); 
end; 

procedure TILabel.CreateLabelVariant(outputFileName: String; printTimeDataSourceNames: _StringArray); 
begin 
    InvokeMethod('CreateLabelVariant', [S_CnClr_System_String, sC_Sys_StringArray], [outputFileName, printTimeDataSourceNames]); 
end; 

function TILabel.CreateXMLLabelInformation: _XDocument; 
begin 
    Result := CoXDocument.Wrap(InvokeMethod('CreateXMLLabelInformation')); 
end; 

procedure TILabel.EndSessionPrint(sessionPrintRequest: TISessionPrintRequest); 
begin 
    InvokeMethod('EndSessionPrint', [sC_NicSDK_ISessionPrintRequest], [GetDefaultIntf(sessionPrintRequest)]); 
end; 

function TILabel.GetLabelPreview(settings: TILabelPreviewSettings): Olevariant; 
begin 
    Result := InvokeMethod('GetLabelPreview', [sC_NicSDK_ILabelPreviewSettings], [GetDefaultIntf(settings)]); 
end; 

function TILabel.Print(quantity: Integer): TIPrintRequest; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := InvokeMethod('Print', [S_CnClr_System_Int32], [quantity]); 
    if VarIsAssigned(objVar) then 
     Result := TIPrintRequest(TClrBaseObject.Create(objVar)); 
end; 

function TILabel.PrintAll: TIPrintRequest; 
begin 
    Result := TIPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('PrintAll'))); 
end; 

function TILabel.PrintAllAsync: TIPrintRequest; 
begin 
    Result := TIPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('PrintAllAsync'))); 
end; 

function TILabel.PrintAsync(quantity: Integer): TIPrintRequest; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := InvokeMethod('PrintAsync', [S_CnClr_System_Int32], [quantity]); 
    if VarIsAssigned(objVar) then 
     Result := TIPrintRequest(TClrBaseObject.Create(objVar)); 
end; 

function TILabel.PrintToGraphics(settings: TIPrintToGraphicsSettings): TIPrintToGraphicsResult; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := InvokeMethod('PrintToGraphics', [sC_NicSDK_IPrintToGraphicsSettings], [GetDefaultIntf(settings)]); 
    if VarIsAssigned(objVar) then 
     Result := TIPrintToGraphicsResult(TClrBaseObject.Create(objVar)); 
end; 

procedure TILabel.SaveAs(fileName: String; overwrite: Boolean); 
begin 
    InvokeMethod('SaveAs', [S_CnClr_System_String, S_CnClr_System_Boolean], [fileName, overwrite]); 
end; 

procedure TILabel.SessionPrint(quantity: Integer; sessionPrintRequest: TISessionPrintRequest); 
begin 
    InvokeMethod('SessionPrint', [S_CnClr_System_Int32, sC_NicSDK_ISessionPrintRequest], [quantity, GetDefaultIntf(sessionPrintRequest)]); 
end; 

procedure TILabel.SetVariableValues(variablesList: String; ignoreMissingVariables: Boolean); 
begin 
    InvokeMethod('SetVariableValues', [S_CnClr_System_String, S_CnClr_System_Boolean], [variablesList, ignoreMissingVariables]); 
end; 

procedure TILabel.SetVariableValuesXml(variablesList: String; ignoreMissingVariables: Boolean); 
begin 
    InvokeMethod('SetVariableValuesXml', [S_CnClr_System_String, S_CnClr_System_Boolean], [variablesList, ignoreMissingVariables]); 
end; 

function TILabel.StartSessionPrint: TISessionPrintRequest; 
begin 
    Result := TISessionPrintRequest(TClrBaseObject.CreateInstance(InvokeMethod('StartSessionPrint'))); 
end; 

procedure TILabel.StoreToPrinter(labelName: String; storeVariant: String); 
begin 
    InvokeMethod('StoreToPrinter', [S_CnClr_System_String, S_CnClr_System_String], [labelName, storeVariant]); 
end; 

function TILabel.Get_Author: String; 
begin 
    Result := GetPropertyValue('Author'); 
end; 

function TILabel.Get_DataSets: _GenericList; 
begin 
    Result := CoGenericList.Wrap(GetPropertyValue('DataSets')); 
end; 

function TILabel.Get_Description: String; 
begin 
    Result := GetPropertyValue('Description'); 
end; 

function TILabel.Get_Directory: String; 
begin 
    Result := GetPropertyValue('Directory'); 
end; 

function TILabel.Get_FileName: String; 
begin 
    Result := GetPropertyValue('FileName'); 
end; 

function TILabel.Get_FilePath: String; 
begin 
    Result := GetPropertyValue('FilePath'); 
end; 

function TILabel.Get_LabelObjects: TILabelObjectList; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := GetPropertyValue('LabelObjects'); 
    if VarIsAssigned(objVar) then 
     Result := TILabelObjectList(TClrBaseObject.Create(objVar)); 
end; 

function TILabel.Get_LabelSettings: TILabelSettings; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := GetPropertyValue('LabelSettings'); 
    if VarIsAssigned(objVar) then 
     Result := TILabelSettings(TClrBaseObject.Create(objVar)); 
end; 

function TILabel.Get_PrintSettings: TIPrintSettings; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := GetPropertyValue('PrintSettings'); 
    if VarIsAssigned(objVar) then 
     Result := TIPrintSettings(TClrBaseObject.Create(objVar)); 
end; 

function TILabel.Get_Revision: Integer; 
begin 
    Result := GetPropertyValue('Revision'); 
end; 

function TILabel.Get_Title: String; 
begin 
    Result := GetPropertyValue('Title'); 
end; 

function TILabel.Get_Variables: TIVariableList; 
var 
    objVar: OleVariant; 
begin 
    Result := nil; 
    objVar := GetPropertyValue('Variables'); 
    if VarIsAssigned(objVar) then 
     Result := TIVariableList(TClrBaseObject.Create(objVar)); 
end; 

答えて

0

.NETコンパイラが同じ名前を持つ複数のオブジェクトであり、コンパイラが「doesnの場合ならばあいまいな参照エラーがスローされますどちらを選ぶかを知っている。それらが複製されている名前空間またはオブジェクト名を確認してください。 これを避けるためにオブジェクトを参照する前に、名前空間を使用することもできます。 例:namespace.object

関連する問題