亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁(yè) > 編程 > Delphi > 正文

排除Delphi5中編寫COM+程序的一個(gè)錯(cuò)誤

2019-11-18 18:44:47
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
         在Delphi5中編寫COM+組件時(shí)總獲得不到ObjectContext
也就是調(diào)用GetObjectContext返回nil. 這使事物處理沒(méi)法正確
完成. 有人在網(wǎng)上告訴我在COM+組件前加上一條加載mtxex.dll
語(yǔ)句.確實(shí)解決了這個(gè)問(wèn)題, 但好像運(yùn)行的并不穩(wěn)定.
PRocedure TgEntityObj.Initialize;
begin
  inherited;
  LoadLibrary('mtxex.dll');
end;
但我在Delphi6中不加這條語(yǔ)句就可以獲得ObjectContext.
我看了D6中的MTX單元和D5果然不一樣, 這也不能怪Borland
D5出來(lái)的時(shí)候WIN2000(COM+)還沒(méi)出來(lái)所以D5中MTX單位中還是加載
MTS的寫法.

在D5 MTX單元中253行.
implementation

uses ComObj;

type
  TGetObjectContextProc = function(var ObjectContext: IObjectContext): HRESULT; cdecl;
  TSafeRefProc = function(const rid: TGUID; Unk: IUnknown): Pointer; cdecl;
var
  GetObjectContextProc: TGetObjectContextProc = nil;
  SafeRefProc: TSafeRefProc = nil;
  MtsProcsLoaded: Boolean = False;

procedure LoadMtsProcs;
var
  Mtxdll: HModule;
begin
  if MtsProcsLoaded then Exit;
  MtsProcsLoaded := True;
  Mtxdll := GetModuleHandle('mtxex.dll');
  if mtxdll <> 0 then
  begin
    @GetObjectContextProc := GetProcAddress(Mtxdll, 'GetObjectContext');
    @SafeRefProc := GetProcAddress(Mtxdll, 'SafeRef');
  end;
end;

function GetObjectContext: IObjectContext;
begin
  LoadMtsProcs;
  if Assigned(GetObjectContextProc) then
    OleCheck(GetObjectContextProc(Result))
  else
    Result := nil;    //單步執(zhí)行時(shí)返回空.
end;

D6中的MTX單元 注意不同.

implementation

uses ComObj;

type
  TGetObjectContextProc = function(var ObjectContext: IObjectContext): HRESULT; cdecl;
  ///
  TCoGetObjectContextProc = function(const riid: TGUID; var ObjectContext: IObjectContext): HRESULT; stdcall;
  TSafeRefProc = function(const rid: TGUID; Unk: IUnknown): Pointer; cdecl;
var
  GetObjectContextProc: TGetObjectContextProc = nil;
  CoGetObjectContextProc: TCoGetObjectContextProc = nil;    ///
  SafeRefProc: TSafeRefProc = nil;
  MtsProcsLoaded: Boolean = False;

function IsComPlusPlatform: boolean;      //////  是否為COM+
var
  Ver: TOsVersionInfo;////
begin
  Ver.dwOSVersionInfoSize := sizeof(Ver);////
  GetVersionEx(Ver);
  if (Ver.dwPlatformID = VER_PLATFORM_WIN32_NT) and///
     (Ver.dwMajorVersion >= 5) then////
       Result := true          //
  else Result := false;
end;                              //////


procedure LoadMtsProcs;
var
  Mtxdll: HModule;
begin
  if MtsProcsLoaded then Exit;
  MtsProcsLoaded := True;
  if IsComPlusPlatform then        ////
  begin
    Mtxdll := GetModuleHandle('ole32.dll');   ///
    if mtxdll <> 0 then                         ///
       @CoGetObjectContextProc := GetProcAddress(Mtxdll, 'CoGetObjectContext');
  end                                             ///
  else
  begin
    Mtxdll := GetModuleHandle('mtxex.dll');
    if mtxdll <> 0 then
    begin
      @GetObjectContextProc := GetProcAddress(Mtxdll, 'GetObjectContext');
      @SafeRefProc := GetProcAddress(Mtxdll, 'SafeRef');
    end;
  end;
end;
function GetObjectContext: IObjectContext;
const
  IID_IObjectContext: TGUID = '{51372AE0-CAE7-11CF-BE81-00AA00A2FA25}';  ///
begin
  LoadMtsProcs;
  if Assigned(CoGetObjectContextProc) then    ///
    CoGetObjectContextProc(IID_IObjectContext, Result)     ///
  else if Assigned(GetObjectContextProc) then
    OleCheck(GetObjectContextProc(Result))
  else
    Result := nil;
end;

加斜細(xì)的是多的部分你只需要把這些部加D5的MTX就可以了.然后另存到你程序的當(dāng)前目錄
編譯程序就能獲得ObjectContext了.


上一篇:設(shè)計(jì)模式、用Delphi實(shí)現(xiàn)---->Strategy模式

下一篇:設(shè)計(jì)模式、用Delphi實(shí)現(xiàn)---->Builder模式

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
學(xué)習(xí)交流
熱門圖片

新聞熱點(diǎn)

疑難解答

圖片精選

網(wǎng)友關(guān)注

蜜桃视频网站在线| 久久亚洲精品小早川怜子| 亚洲精品伦理在线| 精品国产乱码一区二区三区四区| 亚洲欧美国产精品桃花| 亚洲天堂av高清| 国产精品视频免费| 国产不卡123| 国产极品模特精品一二| 久久伊人久久| 色综合久久综合网97色综合| 另类视频在线观看| 精品午夜一区二区三区在线观看| 国产一区二区91| 中文字幕在线观看播放| 伊人免费在线观看高清版| 正在播放欧美视频| 国产日产精品一区二区三区| www.欧美激情.com| 国产欧美日韩电影| 日韩高清在线一区二区| 在线观看免费91| 国产精品视频久久久久久| 亚洲天堂av综合网| 粉嫩av一区二区三区四区五区| 国产一区二区三区四区五区传媒| 在线观看网站免费入口在线观看国内| 国产精品免费人成网站酒店| 国产精品中文| 成人精品在线观看视频| 黄色激情网址| 欧日韩不卡在线视频| 国产激情视频在线| 性欧美videoshd高清| 欧美色图久久| 日本一二三视频| 日韩欧美精品在线| 国产亚洲精品熟女国产成人| 在线亚洲精品自拍| 99久久99久久| 亚洲综合网站在线观看| 国产精品日日摸夜夜爽| 国产精品69久久久久孕妇欧美| 成人91免费视频| 人妻人人澡人人添人人爽| 午夜精品蜜臀一区二区三区免费| 水蜜桃在线免费观看| 四虎永久成年免费影院| 最新日本在线观看| 春暖花开成人亚洲区| 99久re热视频这里只有精品6| av网站免费播放| 91视频地址| 日本中文字幕在线观看视频| 中文字幕在线观看的网站| 日本特黄特色aaa大片免费| 精品视频久久久| 国产欧美日韩亚洲一区二区三区| 国产美女自慰在线观看| 亚洲六月丁香色婷婷综合久久| 在线免费观看国产精品| 成人有码视频在线播放| 牛牛精品一区二区| 中文字幕中文字幕在线十八区| 日韩精品永久网址| 能看毛片的网站| 亚洲综合日韩欧美| 国产成人精品一区二| 三年中国中文观看免费播放| 98精品久久久久久久| 精品少妇人妻av一区二区| 欧美视频久久| 亚州一区二区| 日韩精品无码一区二区三区久久久| 日韩五码在线观看| 中文在线中文资源| 国产一区二区不卡视频在线观看| 久久精品免费一区二区| 国产精品女上位| 国产资源精品在线观看| 午夜精品亚洲一区二区三区嫩草| 午夜国产视频| 久久天堂夜夜一本婷婷麻豆| 欧美精品aⅴ在线视频| 亚洲福利视频免费观看| 尤物视频网站| 亚洲成av人片在线观看香蕉| 欧美精品久久久久性色| 天堂av在线资源| 免费精品在线视频| 伊人网在线视频观看| 欧洲一区二区三区免费视频| 国产大片精品免费永久看nba| 91丨九色丨丰满| 在线不卡视频一区二区| 欧美尤物一区| 色yeye免费人成网站在线观看| 久久精品第九区免费观看| 国产视频第一页在线观看| 亚洲男女av一区二区| 欧美一区国产| 亚洲第一精品夜夜躁人人躁| 精品女同一区二区三区| 久久综合色播五月| 新版中文字幕在线资源| 日本在线影院| 国产精品综合不卡av| 黄色日韩网站视频| 美女精品自拍一二三四| 欧美一区二区三区精品| 精品网站www| 日本www在线| 成人搞黄视频| 性8sex亚洲区入口| 日本免费高清视频| 囯产精品一品二区三区| 在线观看亚洲黄色| 国产午夜精品久久久久久久久| 亚洲毛片在线看| 亚洲国产精品成人一区二区| 怡红院怡春院首页| 香蕉视频在线网站| 亚洲精品**中文毛片| 岛国av在线一区| 国产精品久久久毛片| 国产精品区一区二区三在线播放| 亚洲成人av在线电影| 国产网站免费在线观看| 精品久久久一区二区| 成人国产精品日本在线| 欧美激情喷水| 国产一区二区三区不卡视频网站| 国产精品亚洲综合在线观看| 一区二区三区不卡在线| 国产精品久久久久久久浪潮网站| 国产日韩在线亚洲字幕中文| www日韩在线| 国产伦理精品不卡| 亚洲午夜性刺激影院| 青春草视频在线观看| 欧美不卡高清| 韩国成人动漫在线观看| 国产精品久久久久影院| 在线观看一区日韩| seseavlu视频在线| 素人啪啪色综合| 久久婷婷国产| 亚洲天堂成人在线| 久久午夜影院| 午夜3点看的视频| 精品无人区太爽高潮在线播放| 日本精品三区| 中文字幕视频在线免费观看| 日批视频在线免费看| 久久精品视频一| 日韩av不卡电影| 欧美精品www在线观看| 日韩一级网站| 亚洲国产精品嫩草影院久久av| 777奇米888色狠狠俺也去| 久久在线电影| 欧美情侣在线播放| 亚洲国产成人一区二区三区| 亚洲成人黄色在线| www.色天使| 成人网av.com/| 折磨小男生性器羞耻的故事| 色哟哟在线观看视频| 欧美中文在线字幕| 水蜜桃一区二区| 日本欧美韩国| 国产精品第七页| 超碰日本道色综合久久综合| 日韩电影免费在线看| 日韩精品亚洲专区在线观看| 日韩在线观看免费全集电视剧网站| 国产稀缺真实呦乱在线| 欧美成人在线免费| 大陆av在线播放| 日本黄色大片在线观看| 欧美又大又粗又长| 亚洲国产欧美精品| 在线最新版中文在线| 中文字幕你懂的| av资源在线播放| 亚洲国产精品久久| 久久激情av| 亚洲精品影视在线观看| 91免费日韩| 濑亚美莉大战黑人中文字幕| 精品国产乱码久久久久久久久| 97se亚洲综合在线| 视频二区在线| 国产高清免费在线观看| 日本在线免费播放| 国产精品99999| 国产爆初菊在线观看免费视频网站| 在线观看一区二区三区视频| 亚洲爱爱天堂| 久久久久久久久亚洲精品| 草莓视频末满18勿| 亚洲91精品| 久久色.com| 中文字幕在线免费观看视频| 亚洲新声在线观看| 日本久久中文字幕| 黄色片网站在线观看| 熟妇女人妻丰满少妇中文字幕| 亚洲日本免费电影| 成人h动漫在线| 欧美丝袜一区| 可以免费观看av的网站| 亚洲欧洲日本专区| 毛片网站在线| 欧美黑人做爰爽爽爽| 92看片淫黄大片看国产片| 男人添女荫道口喷水视频| 久久国产精品首页| 久久久久九九九| 欧美孕妇与黑人巨交| 日韩国产精品一区| 天堂网在线免费观看| 日韩精品中文在线观看| av色综合久久天堂av色综合在| 丰满女人性猛交| 少妇高潮大叫好爽喷水| 亚洲综合视频| 久久中文字幕一区| 任你弄在线视频免费观看| 国产日韩欧美一区二区三区视频| 懂色av一区二区三区免费观看| 制服丝袜激情欧洲亚洲| 污视频网站在线免费| 久做在线视频免费观看| 成人18夜夜网深夜福利网| av超碰在线观看| 黄色污污视频在线观看| 国产黄色片在线| 日本深夜福利视频| 中文字幕中文字幕在线中文字幕三区| 天天干天天摸天天操| 色婷婷av一区二区三区之一色屋| 一二美女精品欧洲| 亚洲综合小说区| eeuss影院www免费看| 国产毛片精品国产一区二区三区| 成人同人动漫免费观看| 日本一区二区三区四区| 不卡av在线网| 91在线视频免费播放| 97在线观看免费高| 亚洲丝袜美腿综合| 欧美大片专区| 国产精品18毛片一区二区| 亚洲国产欧美日韩在线| 麻豆亚洲av成人无码久久精品| 日韩一区二区不卡视频| 免费一区二区| 欧美大片在线免费观看| 色综合久久综合网欧美综合网| 亚洲黄色av| 免费激情小视频| 波多野结衣乳巨码无在线观看| 日韩欧美二区三区| 西野翔中文久久精品字幕| 中文字幕国产亚洲2019| av一卡二卡| 欧美精品中文字幕一区二区| www.com欧美| 天天操天天爱天天爽| 日韩欧美视频专区| www.青青青| 日韩黄色在线观看| 婷婷激情成人| 国产拍欧美日韩视频二区| 成人免费在线播放| 成人免费毛片aaaaa**| 中文字幕无线码一区| 日韩人妻无码一区二区三区99| 日韩新的三级电影| 东方欧美亚洲色图在线| 11024精品一区二区三区日韩| 99视频在线免费观看| 日韩av网址大全| 国产三级在线观看完整版| 日韩电影免费观看中文字幕| 97超碰人人模人人人爽人人爱| 国模吧一区二区| 欧美婷婷久久五月精品三区| 欧美丰满老妇熟乱xxxxyyy| 久久国产亚洲精品无码| 日韩精品福利片午夜免费观看| 黄色网一区二区| 欧美成人三级在线视频| 精品蜜桃一区二区三区| 国产在线观看黄色| 国产精品美女在线观看| 污视频在线看网站| 欧美日韩成人影院| 国产女主播喷水视频在线观看| 亚洲精品一区二区三| 不卡一二三区首页| 狠狠色丁香久久婷婷综合丁香| 亚洲一区视频在线| 欧美亚洲另类久久综合| 亚洲制服丝袜一区| 老司机aⅴ毛片免费观看| 91精品国产一区二区三区香蕉| 影音先锋男人在线资源| 免费看男女www网站入口在线| 国产精品欧美极品| 中文字幕最新精品| 欧美日韩小视频| 午夜剧场免费在线观看| 亚洲国产欧美日韩另类综合| 北条麻妃在线一区二区免费播放| 丰满人妻一区二区三区四区53| 成人亚洲一区二区一| 欧美视频网站| 国产精品午夜免费| 国产婷婷成人久久av免费高清| 国产乱淫av麻豆国产免费| 91精品在线影院| 毛茸茸free性熟hd| 99精品美女视频在线观看热舞| 欧美日韩中文字幕一区二区| 香蕉国产在线视频| 日本高清视频在线播放|