From a44aa2e3e52fa71b8ef3217535729d5472debb82 Mon Sep 17 00:00:00 2001 From: "DESKTOP-E401PHE\\Administrator" Date: Sat, 30 Aug 2025 13:46:21 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E4=BA=8C=E7=BB=B4=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 3 +- A00标签打印/U_ClientPrintRmf.dfm | 143 ++++++++--------- A00标签打印/U_ClientPrintRmf.pas | 254 ++++++++++++++++++++++++++----- A00标签打印/U_LabelPrintFun.pas | 2 +- 云翔一码通/U_YMTFHSQList.pas | 50 +----- 云翔一码通/U_YMTRKList.dfm | 4 +- 云翔一码通/U_YMTRKList.pas | 2 +- 云翔一码通/YXYMT.dof | 2 +- 8 files changed, 301 insertions(+), 159 deletions(-) diff --git a/.gitignore b/.gitignore index 9c67b2d..0960ef9 100644 --- a/.gitignore +++ b/.gitignore @@ -4,6 +4,7 @@ **/image **/doc **/wav +**/QrCode **/__history **/__recovery *.dll @@ -19,4 +20,4 @@ *.identcache *.local *.zip -*.rar \ No newline at end of file +*.rar diff --git a/A00标签打印/U_ClientPrintRmf.dfm b/A00标签打印/U_ClientPrintRmf.dfm index 4351035..3db3572 100644 --- a/A00标签打印/U_ClientPrintRmf.dfm +++ b/A00标签打印/U_ClientPrintRmf.dfm @@ -1,8 +1,8 @@ object frmClientPrintRmf: TfrmClientPrintRmf Left = 874 Top = 483 - Width = 419 - Height = 249 + Width = 754 + Height = 704 Caption = #25253#34920#25171#21360 Color = clBtnFace Font.Charset = DEFAULT_CHARSET @@ -22,20 +22,20 @@ object frmClientPrintRmf: TfrmClientPrintRmf Connection = ADOConnection1 LockType = ltReadOnly Parameters = <> - Left = 265 - Top = 65503 + Left = 273 + Top = 12 end object ADOConnection1: TADOConnection LoginPrompt = False - Left = 19 - Top = 65503 + Left = 27 + Top = 12 end object ImageList1: TImageList DrawingStyle = dsTransparent Height = 32 Width = 32 - Left = 101 - Top = 91 + Left = 109 + Top = 136 Bitmap = { 494C010119002400040020002000FFFFFFFFFF10FFFFFFFFFFFFFFFF424D3600 000000000000360000002800000080000000E0000000010020000000000000C0 @@ -3742,9 +3742,9 @@ object frmClientPrintRmf: TfrmClientPrintRmf end object RMDB_1: TRMDBDataSet Visible = True - DataSet = ADO_1 - Left = 265 - Top = 91 + DataSet = CDS_1 + Left = 273 + Top = 136 end object RM1: TRMGridReport ThreadPrepareReport = True @@ -3763,48 +3763,34 @@ object frmClientPrintRmf: TfrmClientPrintRmf CompressThread = False LaterBuildEvents = True OnlyOwnerDataSet = False - Left = 265 - Top = 153 + Left = 273 + Top = 198 ReportData = {} end object RMDB_2: TRMDBDataSet Visible = True - DataSet = ADO_2 - Left = 347 - Top = 91 + DataSet = CDS_2 + Left = 355 + Top = 136 end object CDS_Label: TClientDataSet Aggregates = <> Params = <> - Left = 19 - Top = 91 + Left = 27 + Top = 136 end - object ADO_1: TADOQuery + object ADO_Prt: TADOQuery Connection = ADOConnection1 LockType = ltReadOnly Parameters = <> - Left = 347 - Top = 65503 - end - object ADO_2: TADOQuery - Connection = ADOConnection1 - LockType = ltReadOnly - Parameters = <> - Left = 19 - Top = 29 + Left = 355 + Top = 12 end object RMDB_3: TRMDBDataSet Visible = True - DataSet = ADO_3 - Left = 19 - Top = 153 - end - object ADO_3: TADOQuery - Connection = ADOConnection1 - LockType = ltReadOnly - Parameters = <> - Left = 101 - Top = 29 + DataSet = CDS_3 + Left = 27 + Top = 198 end object RMXLSExport1: TRMXLSExport ShowAfterExport = True @@ -3817,61 +3803,78 @@ object frmClientPrintRmf: TfrmClientPrintRmf ScaleX = 1.000000000000000000 ScaleY = 1.000000000000000000 CompressFile = False - Left = 19 - Top = 215 + Left = 27 + Top = 260 end object RMJPEGExport1: TRMJPEGExport ScaleX = 1.000000000000000000 ScaleY = 1.000000000000000000 - Left = 347 - Top = 153 + Left = 355 + Top = 198 end object RMBarCodeObject1: TRMBarCodeObject - Left = 183 - Top = 91 + Left = 191 + Top = 136 end object ADOQueryCmd: TADOQuery Connection = ADOConnection1 Parameters = <> - Left = 101 - Top = 65503 + Left = 109 + Top = 12 end object ADO_While: TADOQuery Connection = ADOConnection1 LockType = ltReadOnly Parameters = <> - Left = 347 - Top = 29 - end - object ADO_4: TADOQuery - Connection = ADOConnection1 - LockType = ltReadOnly - Parameters = <> - Left = 183 - Top = 29 + Left = 355 + Top = 74 end object RMDB_4: TRMDBDataSet Visible = True - DataSet = ADO_4 - Left = 101 - Top = 153 - end - object ADO_5: TADOQuery - Connection = ADOConnection1 - LockType = ltReadOnly - Parameters = <> - Left = 265 - Top = 29 + DataSet = CDS_4 + Left = 109 + Top = 198 end object RMDB_5: TRMDBDataSet Visible = True - DataSet = ADO_5 - Left = 183 - Top = 153 + DataSet = CDS_5 + Left = 191 + Top = 198 end object ADOQueryReport: TADOQuery + Connection = ADOConnection1 Parameters = <> - Left = 183 - Top = 65503 + Left = 191 + Top = 12 + end + object CDS_1: TClientDataSet + Aggregates = <> + Params = <> + Left = 123 + Top = 288 + end + object CDS_2: TClientDataSet + Aggregates = <> + Params = <> + Left = 259 + Top = 304 + end + object CDS_3: TClientDataSet + Aggregates = <> + Params = <> + Left = 203 + Top = 360 + end + object CDS_4: TClientDataSet + Aggregates = <> + Params = <> + Left = 331 + Top = 376 + end + object CDS_5: TClientDataSet + Aggregates = <> + Params = <> + Left = 411 + Top = 376 end end diff --git a/A00标签打印/U_ClientPrintRmf.pas b/A00标签打印/U_ClientPrintRmf.pas index 71ad8c9..d588af9 100644 --- a/A00标签打印/U_ClientPrintRmf.pas +++ b/A00标签打印/U_ClientPrintRmf.pas @@ -23,20 +23,21 @@ type RM1: TRMGridReport; RMDB_2: TRMDBDataSet; CDS_Label: TClientDataSet; - ADO_1: TADOQuery; - ADO_2: TADOQuery; + ADO_Prt: TADOQuery; RMDB_3: TRMDBDataSet; - ADO_3: TADOQuery; RMXLSExport1: TRMXLSExport; RMJPEGExport1: TRMJPEGExport; RMBarCodeObject1: TRMBarCodeObject; ADOQueryCmd: TADOQuery; ADO_While: TADOQuery; - ADO_4: TADOQuery; RMDB_4: TRMDBDataSet; - ADO_5: TADOQuery; RMDB_5: TRMDBDataSet; ADOQueryReport: TADOQuery; + CDS_1: TClientDataSet; + CDS_2: TClientDataSet; + CDS_3: TClientDataSet; + CDS_4: TClientDataSet; + CDS_5: TClientDataSet; procedure FormCreate(Sender: TObject); procedure FormClose(Sender: TObject; var Action: TCloseAction); procedure FormShow(Sender: TObject); @@ -44,25 +45,33 @@ type procedure TV1DblClick(Sender: TObject); private IsDebug, FPreviewPrint, fIsPreview: Boolean; - FLMType, FLBName: string; + FLMType, FLBName, FQrCodeField: string; FExportFileType, FExportFileName: string; SqlStr1, SqlStr2, SqlStr3, SqlStr4, SqlStr5: string; FSuccessfulFun: string; FparamBlclid: string; procedure PrintReport(); procedure ExportReport(); - procedure InitAdo(Ado: TADOQuery; SqlStr: string); - procedure GetQrCode(Txt: string); + procedure InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string); + function GetQrCode(Txt: string): string; procedure InitArgs(); + function EnsureQrCodeDirectory: Boolean; + function ClearQrCodeDirectory: Boolean; + procedure IintCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet); { Private declarations } public FPrintJson: PChar; FJsonOut: PChar; DConString, DCode, DName: string; constructor Create(AOwner: TComponent; JsonArgs: PChar); + { Public declarations } end; + TMakebar = procedure(ucData: pchar; nDataLen: integer; nErrLevel: integer; nMask: integer; nBarEdition: integer; szBmpFileName: pchar; nScale: integer); stdcall; + + TMixtext = procedure(szSrcBmpFileName: PChar; szDstBmpFileName: PChar; sztext: PChar; fontsize, txtheight, hmargin, vmargin, txtcntoneline: integer); stdcall; + var frmClientPrintRmf: TfrmClientPrintRmf; @@ -77,33 +86,165 @@ begin inherited Create(AOwner); FPrintJson := JsonArgs; end; + // άĿ¼ڣ -procedure TfrmClientPrintRmf.GetQrCode(Txt: string); +function TfrmClientPrintRmf.EnsureQrCodeDirectory: Boolean; +var + QrCodeDir: string; +begin + Result := False; + QrCodeDir := ExtractFilePath(Application.ExeName) + 'QrCode\'; + + try + if not DirectoryExists(QrCodeDir) then + begin + if not ForceDirectories(QrCodeDir) then + raise Exception.Create('޷άĿ¼: ' + QrCodeDir); + end; + Result := True; + except + on E: Exception do + begin + Application.MessageBox(PChar('άĿ¼ʧ: ' + E.Message), '', MB_ICONERROR); + end; + end; +end; + +// նάĿ¼еļ +function TfrmClientPrintRmf.ClearQrCodeDirectory: Boolean; +var + QrCodeDir: string; + SearchRec: TSearchRec; +begin + Result := False; + QrCodeDir := ExtractFilePath(Application.ExeName) + 'QrCode\'; + + try + if not DirectoryExists(QrCodeDir) then + Exit; // Ŀ¼Ϊɹ + // ɾĿ¼.bmpļ + if FindFirst(QrCodeDir + '*.bmp', faAnyFile, SearchRec) = 0 then + begin + repeat + DeleteFile(QrCodeDir + SearchRec.Name); + until FindNext(SearchRec) <> 0; + FindClose(SearchRec); + end; + + Result := True; + except + on E: Exception do + begin + Application.MessageBox(PChar('նάĿ¼ʧ: ' + E.Message), '', MB_ICONERROR); + end; + end; +end; + +procedure TfrmClientPrintRmf.IintCDS(SADOQry: TADOQuery; mClientDataset: TclientDataSet); +var + i, k: integer; + mfieldName: string; + mSize: integer; +begin + mfieldName := ''; + mClientDataset.FieldDefs.Clear; + with SADOQry do + begin + for i := 0 to fieldCount - 1 do + begin + if (Fields[i].DataType = ftString) and (Fields[i].Size = 0) then + begin + mSize := 1; + end + else + mSize := Fields[i].Size; + mfieldName := trim(fields[i].FieldName); + mClientDataset.FieldDefs.Add(mfieldName, Fields[i].DataType, mSize); + + end; + end; + mClientDataset.FieldDefs.Add('QRBARCODE', ftString, 200); + mClientDataset.Close; + mClientDataset.CreateDataSet; + + if SADOQry.IsEmpty then + exit; + + SADOQry.first; + k := 1; + try + mClientDataset.DisableControls; + mClientDataset.Filtered := false; + + while not SADOQry.Eof do + begin + with mClientDataset do + begin + Append; + for i := 0 to SADOQry.FieldCount - 1 do + begin + fields[i].value := SADOQry.Fields[i].Value; + end; + + fieldByName('QRBARCODE').value := ''; + inc(k); + Post; + end; + SADOQry.Next; + end; + if not mClientDataset.IsEmpty then + begin + mClientDataset.First; + end; + finally + mClientDataset.EnableControls; + end; + +end; + +function TfrmClientPrintRmf.GetQrCode(Txt: string): string; var fPrintFile: string; fImagePath: string; Moudle: THandle; -// Makebar: TMakebar; -// Mixtext: TMixtext; + Makebar: TMakebar; + Mixtext: TMixtext; CurRow: Integer; + TimeStamp: string; begin -// try -// Moudle := LoadLibrary('MakeQRBarcode.dll'); -// @Makebar := GetProcAddress(Moudle, 'Make'); -// @Mixtext := GetProcAddress(Moudle, 'MixText'); -// Txt := Trim(ADOQueryPrint.fieldbyname('MXID').AsString); -// fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; -// if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then -// CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); -// if FileExists(fImagePath) then -// DeleteFile(fImagePath); -// Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); -// except -// application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); -// Order_Main.EnableControls; -// exit; -// end; + Result := ''; // ʼ· + try + Moudle := LoadLibrary('MakeQRBarcode.dll'); + if Moudle = 0 then + RaiseLastOSError; + + @Makebar := GetProcAddress(Moudle, 'Make'); + if not Assigned(Makebar) then + raise Exception.Create('Ҳ Make '); + + @Mixtext := GetProcAddress(Moudle, 'MixText'); + if not Assigned(Mixtext) then + raise Exception.Create('Ҳ MixText '); + + // ʱļ (ʽ: YYYYMMDD_HHMMSSZZZ) + Sleep(10); + TimeStamp := FormatDateTime('yyyymmdd_hhnnsszzz', Now) + '_' + IntToStr(Random(1000)); + fImagePath := ExtractFilePath(Application.ExeName) + 'QrCode\' + TimeStamp + '.bmp'; + + // ȷĿ¼ + if not DirectoryExists(ExtractFilePath(fImagePath)) then + ForceDirectories(ExtractFilePath(fImagePath)); + + Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); + + Result := fImagePath; // ɵļ· + except + on E: Exception do + begin + application.MessageBox(PChar('ʧܣ' + E.Message), '', MB_ICONERROR); + end; + end; end; procedure TfrmClientPrintRmf.InitArgs; @@ -129,7 +270,7 @@ begin FLBName := JSONObject.S['LBName']; FExportFileType := JSONObject.S['ExportFileType']; FExportFileName := JSONObject.S['ExportFileName']; - + FQrCodeField := JSONObject.S['QrCodeField']; DConString := JSONObject.S['DConString']; DCode := JSONObject.S['DCode']; DName := JSONObject.S['DName']; @@ -138,8 +279,7 @@ begin if Trim(FExportFileName) = '' then FExportFileName := FLBName; - // ļֲ䣩 - ExportFtErpFile(FLBName + '.rmf', ADOQueryReport); + // ʼ SQL ַ SqlStr1 := ''; @@ -180,18 +320,49 @@ begin // RM1.PreviewButtons := [rmpbZoom, rmpbLoad, rmpbSave, rmpbFind, rmpbPageSetup, rmpbExit, rmpbSaveToXLS, rmpbExport, rmpbNavigator]; end; -procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; SqlStr: string); +procedure TfrmClientPrintRmf.InitAdo(Ado: TADOQuery; Cds: TClientDataSet; SqlStr: string); +var + QrCodeIdField: TField; begin if Trim(SqlStr) = '' then Exit; + + // ִADOѯ with Ado do begin Close; - sql.Clear; - sql.add(SqlStr); -// ShowMessage(SqlStr); + SQL.Clear; + SQL.Add(SqlStr); Open; end; + IintCDS(Ado, Cds); + + // ǷڶάIDֶ + if Trim(FQrCodeField) = '' then + Exit; + + QrCodeIdField := Cds.FindField(FQrCodeField); + if QrCodeIdField = nil then + Exit; + + // ɶά벢󶨵ClientDataSet + with Cds do + begin + DisableControls; + try + First; + while not Eof do + begin + Edit; + FieldByName('QRBARCODE').AsString := GetQrCode(QrCodeIdField.AsString); + Post; + Next; + end; + finally + First; + EnableControls; + end; + end; end; procedure TfrmClientPrintRmf.ExportReport(); @@ -259,7 +430,10 @@ begin ConnectionString := DConString; Connected := true; end; - + // ļֲ䣩 + ExportFtErpFile(FLBName + '.rmf', ADOQueryReport); + EnsureQrCodeDirectory(); + ClearQrCodeDirectory(); end; procedure TfrmClientPrintRmf.FormClose(Sender: TObject; var Action: TCloseAction); @@ -284,11 +458,11 @@ begin exit; end; - InitAdo(ADO_1, SqlStr1); - InitAdo(ADO_2, SqlStr2); - InitAdo(ADO_3, SqlStr3); - InitAdo(ADO_4, SqlStr4); - InitAdo(ADO_5, SqlStr5); + InitAdo(ADO_Prt, CDS_1, SqlStr1); + InitAdo(ADO_Prt, CDS_2, SqlStr2); + InitAdo(ADO_Prt, CDS_3, SqlStr3); + InitAdo(ADO_Prt, CDS_4, SqlStr4); + InitAdo(ADO_Prt, CDS_5, SqlStr5); if FExportFileType = '' then begin diff --git a/A00标签打印/U_LabelPrintFun.pas b/A00标签打印/U_LabelPrintFun.pas index 7c8e5ab..f83b77a 100644 --- a/A00标签打印/U_LabelPrintFun.pas +++ b/A00标签打印/U_LabelPrintFun.pas @@ -25,7 +25,7 @@ begin Result := FJsonOut; end; end; -// '{ "LBName": "","DConString": "'+DConString+'","DCode": "'+DCode+'","DName": "'+DName+'","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC p_test ''22'' " }] }'; +// '{ "LBName": "","QrCodeField": "ssid","DConString": "'+DConString+'","DCode": "'+DCode+'","DName": "'+DName+'","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC p_test ''22'' " }] }'; function FunPrint(App: Tapplication; JsonArgs: PChar): PChar; begin diff --git a/云翔一码通/U_YMTFHSQList.pas b/云翔一码通/U_YMTFHSQList.pas index 36fbea1..ffc0c39 100644 --- a/云翔一码通/U_YMTFHSQList.pas +++ b/云翔一码通/U_YMTFHSQList.pas @@ -151,7 +151,7 @@ var implementation uses - U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp; + U_DataLink, U_YMTFHSQInPut, U_Fun, U_ZDYHelp, U_LabelPrintFun; {$R *.dfm} @@ -425,52 +425,16 @@ end; procedure TfrmYMTFHSQList.TBPrintClick(Sender: TObject); var - fPrintFile: string; - Txt, fImagePath: string; - Moudle: THandle; - Makebar: TMakebar; - Mixtext: TMixtext; + MPrintJson, JsonResult, msql: string; begin + if Order_Main.IsEmpty then Exit; + msql := ' select A.*,B.* from YMT_FHSQ_Main A inner join YMT_FHSQ_Sub B on A.FSId=B.FSId where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''; - with ADOQueryPrint do - begin - Close; - sql.Clear; - Sql.Add(' select A.*,B.* '); - sql.Add(' from YMT_FHSQ_Main A inner join YMT_FHSQ_Sub B on A.FSId=B.FSId '); - sql.Add(' where A.FSId=''' + Trim(Order_Main.fieldbyname('FSId').AsString) + ''''); - open; -// showmessage(sql.text); - end; - fPrintFile := ExtractFilePath(Application.ExeName) + 'Report\뵥.rmf'; - if FileExists(fPrintFile) then - begin - try - Moudle := LoadLibrary('MakeQRBarcode.dll'); - @Makebar := GetProcAddress(Moudle, 'Make'); - @Mixtext := GetProcAddress(Moudle, 'MixText'); - Txt := Trim(Order_Main.fieldbyname('FSID').AsString); - fImagePath := ExtractFilePath(Application.ExeName) + 'image\temp.bmp'; - if not DirectoryExists(pchar(ExtractFilePath(Application.ExeName) + 'image')) then - CreateDirectory(pchar(ExtractFilePath(Application.ExeName) + 'image'), nil); - if FileExists(fImagePath) then - DeleteFile(fImagePath); - Makebar(pchar(Txt), Length(Txt), 3, 3, 0, PChar(fImagePath), 3); - except - application.MessageBox('ʧܣ', 'ʾϢ', MB_ICONERROR); - exit; - end; - - RMVariables['QRBARCODE'] := fImagePath; - RM1.LoadFromFile(fPrintFile); - RM1.ShowReport; - end - else - begin - Application.MessageBox(PChar('û' + ExtractFilePath(Application.ExeName) + 'Report\뵥.rmf'), 'ʾ', 0); - end; + MPrintJson := '{ "LBName": "뵥","QrCodeField": "ssid","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "' + msql + '" }] }'; + FunPrint(Application, PChar(MPrintJson)); + end; procedure TfrmYMTFHSQList.TBRafreshClick(Sender: TObject); diff --git a/云翔一码通/U_YMTRKList.dfm b/云翔一码通/U_YMTRKList.dfm index 5244671..4a8bcc7 100644 --- a/云翔一码通/U_YMTRKList.dfm +++ b/云翔一码通/U_YMTRKList.dfm @@ -1,6 +1,6 @@ object frmYMTRKList: TfrmYMTRKList - Left = 557 - Top = 418 + Left = 264 + Top = 309 Width = 1370 Height = 750 Caption = #38754#26009#22238#20179#30331#35760 diff --git a/云翔一码通/U_YMTRKList.pas b/云翔一码通/U_YMTRKList.pas index 274ab5f..cd24055 100644 --- a/云翔一码通/U_YMTRKList.pas +++ b/云翔一码通/U_YMTRKList.pas @@ -467,7 +467,7 @@ begin if CDS_Main.IsEmpty then Exit; MFiltration := Trim(CDS_Main.fieldbyname('SPID').AsString); - MPrintJson := '{ "LBName": "ǩӡ","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 '' ' + MFiltration + ''' " }] }'; + MPrintJson := '{ "LBName": "ǩӡ","QrCodeField": "MXID","DConString": "' + DConString + '","DCode": "' + DCode + '","DName": "' + DName + '","IsPreview": true,"printerIndex": 0,"ExportFileType": "", "PrtArgs": [ {"SqlStr": "EXEC P_YMT_CK_MX_Prt1 ''' + MFiltration + ''' " }] }'; FunPrint(Application, PChar(MPrintJson)); end; diff --git a/云翔一码通/YXYMT.dof b/云翔一码通/YXYMT.dof index c24c8dd..6c95840 100644 --- a/云翔一码通/YXYMT.dof +++ b/云翔一码通/YXYMT.dof @@ -101,7 +101,7 @@ DebugSourceDirs= UsePackages=0 [Parameters] RunParams= -HostApplication=D:\Project\D7myYunxiang\һͨ\testDll.exe +HostApplication=E:\Ŀ\00_صͻ\\D7myYunxiang\һͨ\testDll.exe Launcher= UseLauncher=0 DebugCWD=