调用COM,如下:(10分)

  • 主题发起人 主题发起人 Fucool
  • 开始时间 开始时间
F

Fucool

Unregistered / Unconfirmed
GUEST, unregistred user!
VB中代码如下,请问DELPHI如何定
Private Sub Command1_Click()
Dim s As pdfBMnew.pdfBM
Set s = New pdfBMnew.pdfBM
Dim i As Integer
i = s.mnuPdf("sdfas", Me.hWnd, "c:/ddd.bmp")
End Sub
 
这样大概可以,没实验吆。
procedure TForm1.Button1Click(Sender: TObject);
var
s: OleVariant;
i: Integer;
begin
s := CreateOleObject('pdfBMnew.pdfBM');
i := s.mnuPdf('sdfas', Handle, 'c: /ddd.bmp');
end;
 
对了
uses comobj;
 
以上的不行,试过了。
 
why?
大概应该是Create的不对了。
找一下那个Com的名称吧。[:(]
 
对了
uses comobj;
编译通过,结果不对。
 
那我也没办法了,对了能否调出Com来?
 
VB的源码

Public Function mnuPdf(ByVal str As String, ByVal IHwnd As Long, ByVal picName As String) As Boolean


mnuPdf = False
On Error GoTo EH

If str = "" Then
MsgBox "需要编码的数据不存在", vbInformation + vbOKOnly, "提示"
Exit Function
End If

Dim str4 As String
str4 = Decrypt(str, StrPW) '加密字符串

Dim objInput As PDFOBJ
Dim nerrcode As Integer

nerrcode = MakeStringObject(objInput, PDFINPUT, str4)
nerrcode = PDFEncode(objInput, lena(str4))
If nerrcode < 0 Then
MsgBox "Encode Error"
Exit Function
End If


Dim objOutput As PDFOBJ
Dim nOutLen As Long
Dim i As Integer

i = MakeClipboardObject(objOutput, PDFOUTPUT, IHwnd)

If PDFOutputAsDIB(DPI_100_AT_10MIL, 0) = PDF_TRUE Then
If PDFMakeImage(objOutput, nOutLen) = ERR_NOERROR Then
Dim recPDF As PDFDETAILS

If PDFGetDetails(recPDF) = PDF_TRUE Then
Const CF_DIB = 8

SavePicture Clipboard.GetData(CF_DIB), picName

End If
End If
End If
'---------------------------------------------------------------------
' End If
mnuPdf = True
Exit Function

EH:
MsgBox Err.Description
mnuPdf = False

End Function

正常运行,但无法 写bmp 文件

使用以下时,可以出现提示信息?
说明COM调用是正确的。
var
s: OleVariant;
i: Integer;
begin
s := CreateOleObject('pdfBMnew.pdfBM');
i := s.mnuPdf('', Handle, 'c: /ddd.bmp');

谢谢
 
那就应该看下面这句话了。
i := s.mnuPdf('sdfas', Handle, 'c: /ddd.bmp');
这样有一个缺点,不能使用Codesight,没有语法提示。
看是否可以使用
project->Import Type Library将他的东西调出来,然后引用。
 
谢谢,我试试看。
 
TO:yzhshi
谢谢,以下代码,成功。
i: WordBool;
begin
i:= pdfbmnew_tlb.CopdfBM.Create.mnuPdf ('sadfasdf',form1.Handle ,'c:/df.bmp')
另外,我的QQ34579653请多指教。

 
真不好意思,我没有QQ,呵呵,挺意外的吧,因为我不喜欢聊天。
喜欢讨论技术问题。
如果有问题,可以给我发email,mailto:yzhshi@263.net。
在线的时候可以呼叫我。OK!
 
接受答案了.
 
好的,谢谢了。
以后请多指交。
 
后退
顶部