unitunt_machine_webdll
;inte***ce
uses
comobj, activex, machine_tlb, stdvcl, sysutils, windows, device ;
const
g_supportedoptions = inte***cesafe_for_untrusted_caller or inte***cesafe_for_untrusted_data ;
type
tmachine = class(tautoobject, imachine, iobjectsafety)
private
fobjectsafetyflags: dword;
protected
...public
function getinte***cesafetyoptions(const iid: tiid; pdwsupportedoptions,
pdwenabledoptions: pdword): hresult; virtual; stdcall;
function setinte***cesafetyoptions(const iid: tiid; dwoptionsetmask,
dwenabledoptions: dword): hresult; virtual; stdcall;
end;
implementation
uses comserv;
/引數傳遞/
var ...
function tmachine.getinte***cesafetyoptions(const iid: tiid;
pdwsupportedoptions, pdwenabledoptions: pdword): hresult;
var unk: iunknown;
begin
if (pdwsupportedoptions = nil) or (pdwenabledoptions = nil) then
begin
result := e_pointer;
exit;
end;
result := queryinte***ce(iid, unk);
if result = s_ok then
begin
pdwsupportedoptions^ := inte***cesafe_for_untrusted_caller or
inte***cesafe_for_untrusted_data;
pdwenabledoptions^ := fobjectsafetyflags and
(inte***cesafe_for_untrusted_caller or inte***cesafe_for_untrusted_data);
endelse begin
pdwsupportedoptions^ := 0;
pdwenabledoptions^ := 0;
end;
end;
function tmachine.setinte***cesafetyoptions(const iid: tiid;
dwoptionsetmask, dwenabledoptions: dword): hresult;
var unk: iunknown;
begin
result := queryinte***ce(iid, unk);
if result <> s_ok then exit;
fobjectsafetyflags := dwenabledoptions and dwoptionsetmask;
end;
initialization
tautoobjectfactory.create(comserver, tmachine, class_machine,
cimultiinstance, tmapartment);
end.
C 呼叫Delphi寫的DLL
在c 中可以這樣呼叫 呼叫 這裡需要注意的是要外傳的pchar型別引數,在c 中對應使用stringbuilder,如果使用string沒有任何資訊傳出,如果使用ref string形式,則會出現記憶體錯誤。在c 中可以這樣呼叫 呼叫 經過測試 delphi中integer的引數使用c 中的int即...
DELPHI呼叫VC寫的DLL經驗
由於專案的需要,必須使用delphi呼叫vc編寫的dll,而我是編寫dll的。這裡總結幾個出現過的問題,以後再遇到就會用了。一 需要在每乙個輸出的函式開始新增上 afx manage state afxgetstaticmodulestate 這是用來實現dll資源的切換!讓我們來看看,這句 到底做...
Delphi動態呼叫C 寫的DLL
c dll 檔案,建議用最簡單的c 編輯工具。不會加入很多無關的dll檔案。本人用codeblocks mingw。不像 vs2010,dll編譯成功,呼叫的時候會提示缺其他dll。系統生成的main.h和main.cpp ifndef main h define main h include to...