亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? command.cpp

?? 故障診斷工作涉及的領域相當廣泛
?? CPP
?? 第 1 頁 / 共 2 頁
字號:
// commanf.cpp: implementation of the commanf class.
//
//////////////////////////////////////////////////////////////////////

#include "stdafx.h"
//#include "richtest.h"
#include "command.h"
#include "mydata.h"
//#include "mclcomclass.h"
#ifdef _DEBUG
#undef THIS_FILE
static char THIS_FILE[]=__FILE__;
#define new DEBUG_NEW
#endif
IID EMPTY_IID={0,0,0,{0,0,0,0,0,0,0,0}};
const IID IID_IMWFlags = {0x0A295776,0x23A1,0x410a,{0x94,0xBD,0x0C,0x6C,0x61,0xB8,0x91,0xB7}};
const CLSID CLSID_MWFlags = {0x02730550,0xC3E2,0x4a60,{0xBA,0x7B,0x9A,0xBC,0xD4,0x81,0x25,0x0D}};
//////////////////////////////////////////////////////////////////////
// Construction/Destruction
//////////////////////////////////////////////////////////////////////
extern int invoke(IDispatch*,disp_conector*,int,VARIANT*, VARIANT*);
#define DISP_BASE 7
IMPLEMENT_SERIAL(command,CObject,1);
HRESULT __stdcall get_MWFlags(IMWFlags** ppFlags);   
tagconector::tagconector()
{	AFX_MANAGE_STATE(AfxGetStaticModuleState());
	function_name=NULL;//接口名稱
	function_length=0;//接口名稱長度
	description=NULL;//接口描述
	description_length=0;//接口描述長度
	xxx=FALSE;
	in_param_cnt=1;//輸入參數數量
	out_param_cnt=1;//輸出參數數量
};
tagconector::~tagconector()
	{AFX_MANAGE_STATE(AfxGetStaticModuleState());
	if(!xxx)
		{
	
			if(description!=NULL)
			{
				delete []description;//接口描述
				description=NULL;
			}
			if(function_name!=NULL)
			{	
				delete []function_name;//接口名稱
				function_name=NULL;
			}
			int i=0;
		}
	xxx=TRUE;
	}
 _declspec(dllexport)	void operator <<(CArchive& ar,tagconector& it)
	{
		ar<<it.type_in;
		ar<<it.in_param_cnt;
		ar<<it.out_param_cnt;
		ar<<it.description_length;
		for(int i=0;i<it.description_length;i++)
			ar<<it.description[i];
		ar<<it.function_length;
		for(i=0;i<it.function_length;i++)
			ar<<it.function_name[i];
		i=10;
		
	}
 _declspec(dllexport)	void operator >>(CArchive& ar,tagconector& it)
		{int bag;
		ar>>bag;
		it.type_in=(mytype)bag;
		ar>>it.in_param_cnt;
		ar>>it.out_param_cnt;
		ar>>it.description_length;
		it.description=new char[it.description_length];
		for(int i=0;i<it.description_length;i++)
			ar>>it.description[i];
		ar>>it.function_length;
			it.function_name=new char[it.function_length];
		for(i=0;i<it.function_length;i++)
			ar>>it.function_name[i];
		it.xxx=FALSE;
	}

	command::command(mydata *p,int n)
{
		AFX_MANAGE_STATE(AfxGetStaticModuleState());
//	run_info=new char[1000];
	run_info=NULL;
	icount_in=n;
	data_in=p;
	clsid=EMPTY_IID;
   iid=EMPTY_IID;
   libid=EMPTY_IID;
   run_info=NULL;
  conector_cnt=0;
  cmd_name=NULL;//模塊名稱 
  cmd_info=NULL;//模塊詳細信息
  cmd_where=NULL;//模塊磁盤路徑及相關信息
  for(int i=0;i<MAX_CONECTOR_COUNT;i++)
  {conector[i].function_name=NULL;//接口名稱
	conector[i].description=NULL;
  }
}
void command::attach(int id,char* name,int name_length,char* info,int info_length,char* where,int size)
{AFX_MANAGE_STATE(AfxGetStaticModuleState());
	int i;
	cmd_id=id;
	cmd_name=new char[name_length];
	cmd_where=new char[size];
	cmd_info=new char[info_length];
	for(i=0;i<name_length;i++)
		cmd_name[i]=name[i];
	for(i=0;i<size;i++)
		cmd_where[i]=where[i];
	for(i=0;i<name_length;i++)
		cmd_info[i]=info[i];

}
command::command()
{  
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
//	run_info=new char[1000];
	run_info=NULL;
//	memset(run_info,0,1000);
clsid=EMPTY_IID;
   iid=EMPTY_IID;
   libid=EMPTY_IID;
  conector_cnt=0;
  cmd_name=NULL;//模塊名稱 
  cmd_info=NULL;//模塊詳細信息
  cmd_where=NULL;//模塊磁盤路徑及相關信息
	hdll=NULL;
	data_in=NULL;

}
command::~command()
{AFX_MANAGE_STATE(AfxGetStaticModuleState());
//delete []run_info;
//run_info=NULL;
	if(cmd_name!=NULL)
	{
	delete []cmd_name;
	cmd_name=NULL;
	
	}
	if(cmd_info!=NULL)
	{
		delete []cmd_info;
		cmd_info=NULL;
	}
	if(cmd_where!=NULL)
	{
		delete []cmd_where;
		cmd_where=NULL;
	}
	if(hdll!=NULL)
	{
		::FreeLibrary(hdll);
		hdll=NULL;
	}
  for(unsigned int i=0;i<conector_cnt;i++)
	{conector[i].~tagconector();
	}
  if(data_in!=NULL)
	delete data_in;
} 

LRESULT command::go(mydata* data_in,int* pcid,int cnt)
{
	AFX_MANAGE_STATE(AfxGetStaticModuleState());
//	memset(run_info,0,1000);
	int result=0;
if(cmd_name!=NULL)
{if(cmd_type==com_std) //遵循定義的標準接口
	{
		CString info(cmd_name,name_length);
		myinterface* face;
		if(FAILED(CoInitialize(NULL)))
			AfxMessageBox("組件庫初試化錯誤"); 
			HRESULT hr=CoCreateInstance(clsid,NULL,CLSCTX_INPROC,iid,(void**)&face);
			if(FAILED(hr))
				AfxMessageBox(info+"模塊沒有找到"); 
		
	}
	else if(cmd_type==com_disp) //格式自由的派發接口
		{	_MCLCONVERSION_FLAGS flags;
			IMWFlags* pFlags = NULL;
		disp_conector it;
		 disp_conector* pit=&it;
		 DISPID dispid;
		 IDispatch* dp;
		 CString info(cmd_name,name_length);
		 if(FAILED(CoInitialize(NULL)))
		 {AfxMessageBox("組件庫初試化錯誤"); 
		 return -1;
		 }
		if (FAILED(CoCreateInstance(CLSID_MWFlags, NULL, CLSCTX_INPROC_SERVER, 
                                  IID_IMWFlags, (void**)&pFlags)))
		{AfxMessageBox("矩陣轉換模塊沒有找到,請檢查Matlab數學庫是否正確安裝");
		return -1;
		};
		if (FAILED(GetConversionFlags(pFlags, &flags)))
        {
            AfxMessageBox("Error getting data conversion flags");
            return -1;
        }
        pFlags->Release();
            
		 HRESULT hr=CoCreateInstance(clsid,NULL,CLSCTX_INPROC,iid,(void**)&dp);
		 if(FAILED(hr))
		 {
			 return -1;
		 } //必要的準備
		int j,k=0;
		for(j=0;j<cnt;j++)
		{for(unsigned int i=0;i<this->conector_cnt;i++)
			{
				if(*(pcid+j)==i)//目標借口函數=?當前借口
				{	
					CString info(conector[i].description,conector[i].description_length);
					LPOLESTR lcmd_name=new unsigned short[conector[i].description_length];
					char *ssss=(char*)lcmd_name;
					for( k=0;k<conector[i].description_length;k++)
					lcmd_name[k]=conector[i].description[k];
	
					hr=dp->GetIDsOfNames(IID_NULL,&lcmd_name,1,LOCALE_SYSTEM_DEFAULT,&dispid);
					DWORD* dwp=(DWORD*)dp;
					DWORD* vtable=(DWORD*)(*dwp);
					DWORD* dw=(DWORD*)&(pit->p1i0o);
					*dw=*(vtable+DISP_BASE+dispid);
				static	VARIANT in_bag[MAX_IN_PARAM] ;
				static	VARIANT out_bag[MAX_OUT_PARAM];
					if(!conector[i].in_param_cnt==data_in->the_length)				
						{//AfxMessageBox(info+"參數數量錯誤"); 
						return -1;
						 }
					//InitConversionFlags(&flags);
					for(k=0;k<conector[i].in_param_cnt;k++)
						mxArray2Variant(data_in->pdata.mw[k].GetData(),in_bag+k,&flags);

					int the_func_type=5*(conector[i].in_param_cnt)+conector[i].out_param_cnt;
					int hr=invoke(dp,pit,the_func_type,out_bag,in_bag);
				//	float*a =out_bag->parray;
					mxArray *tempbag[MAX_OUT_PARAM];
					for(k=0;k<MAX_OUT_PARAM;k++)
					tempbag[k]=NULL;
					mwArray mwbag[MAX_OUT_PARAM];
					for(k=0;k<conector[i].out_param_cnt;k++)
					{
						Variant2mxArray(out_bag+k,tempbag+k,&flags);
						mwbag[k]=mwArray(tempbag[k]);//mx結構賦予mw類以后由mw析構,切記!!!
					}
				//	double r[10],im[10];
				//	mwbag[0].ExtractData(r,im);
					tinfo.Empty();
					tinfo=CString("流水線數據");
					tinfo+='\n';
					tinfo+="第 ";
					tinfo+=level+'0';
					tinfo+=" 級: ";
					for(unsigned int ti=0;ti<name_length;ti++)
					tinfo+=cmd_name[ti];
					tinfo+='\n';
					unsigned int lth=tinfo.GetLength();
					for(ti=0;ti<conector[i].function_length;ti++)
					tinfo+=conector[i].function_name[ti];
					run_info=tinfo.GetBuffer(4);
					int z=0;
				//	run_info[lth+name_length+1]='\0';
					(data_in+1)->mset_data(run_info,tinfo.GetLength()+4,type_mw,NULL,NULL,conector[i].out_param_cnt,mwbag);
//					for(k=0;k<conector[i].out_param_cnt;k++)
			//		mxDestroyArray(tempbag[k]);
					//	delete[] tempbag;
//					delete[] out_bag;
//					delete[] in_bag;
					
				}
			}
		}
	}
	else if(cmd_type==function)//普通DLL函數接口
			{
		if(level>=special)
		 hdll=::LoadLibrary(cmd_where);
		for(unsigned int j=0;j<cnt;j++)
		{
			for(unsigned int i=0;i<this->conector_cnt;i++)
			{
				if(*(pcid+j)==i)
				{(data_in+1)->outer=TRUE;
					if((conector+i)->type_in==type_dou)
					{	unsigned int cnt;
						double bag;
						(conector+i)->pfunc.doufunc=(pdaoai)::GetProcAddress(hdll,(conector+i)->description);
						if((conector+i)->pfunc.doufunc!=NULL)
						{
							result=(conector+i)->pfunc.doufunc(&bag,&cnt,data_in->pdata.dou,data_in->the_length);
							(data_in+1)->set_data(NULL,NULL,type_dou,cnt,&bag);
						}
						else
						{CString info((conector+i)->function_name,(conector+i)->function_length);
							AfxMessageBox(info+"函數沒有找到");
						}
					}
					else if((conector+i)->type_in==type_mw)
					{unsigned int cnt;
						mwArray bag;
						(conector+i)->pfunc.mwfunc=(pdmwomwi)::GetProcAddress(hdll,(conector+i)->description);
						if((conector+i)->pfunc.mwfunc!=NULL)
						{
							result=(conector+i)->pfunc.mwfunc(&bag,&cnt,data_in->pdata.mw,data_in->the_length);
							double r[4],i[4];
							bag.ExtractData(r,i);
							(data_in+1)->mset_data(NULL,NULL,type_mw,NULL,NULL,cnt,&bag);
						}
						else
						{CString info((conector+i)->function_name,(conector+i)->function_length);
							AfxMessageBox(info+"函數沒有找到");
						}
						::FreeLibrary(hdll);
							hdll=NULL;
					}
				//	else if((conector+i)->type_in==type_var) //暫時不支持
				//		(conector+i)->pfunc.varfunc=(pdvovi)::GetProcAddress(hdll,(conector+i)->description);
				}
			}
		}
	}
}
else 
{

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91精品婷婷国产综合久久竹菊| 成人黄色在线看| 亚洲美女偷拍久久| 亚洲国产精品av| 欧美国产精品v| 国产精品欧美久久久久一区二区| 久久综合资源网| 欧美成人a∨高清免费观看| 欧美日韩成人在线一区| 欧美亚洲国产怡红院影院| 欧美日韩一区二区三区免费看| 不卡的电影网站| 欧美日精品一区视频| 欧美亚男人的天堂| 91精品国产色综合久久ai换脸| 欧美精品一二三四| 久久精品欧美日韩精品| 国产午夜久久久久| 一区二区三区高清不卡| 亚洲影视在线观看| 久色婷婷小香蕉久久| 一本色道综合亚洲| 欧美精品一区二区三区视频| 亚洲欧洲日韩女同| 奇米四色…亚洲| av在线一区二区三区| 在线免费观看日本欧美| 日本精品视频一区二区三区| 国产激情一区二区三区桃花岛亚洲| 成人综合婷婷国产精品久久蜜臀| 在线观看亚洲精品视频| 久久久国产一区二区三区四区小说| 国产精品素人一区二区| 日韩国产欧美三级| 成人av资源站| 亚洲一二三区不卡| 亚洲高清免费观看| 久久激五月天综合精品| 国产一区二区三区日韩| 色综合久久久网| 欧美三级日韩三级| 国产亚洲女人久久久久毛片| 国产精品视频在线看| 亚洲国产成人av| 懂色av一区二区三区免费观看 | 亚洲国产日日夜夜| 精品亚洲成a人| 欧美视频自拍偷拍| 国产片一区二区| 狠狠色综合播放一区二区| 国产福利精品一区| 欧美三级日本三级少妇99| 26uuu国产电影一区二区| 亚洲一区二区三区不卡国产欧美| 国产在线精品一区二区| 欧美色大人视频| 国产精品高潮呻吟| 国产精品综合一区二区三区| 欧美乱妇20p| 亚洲最大色网站| 91一区二区三区在线观看| 欧美精品免费视频| 亚洲国产中文字幕在线视频综合 | 精品粉嫩超白一线天av| 五月天国产精品| 国产精品羞羞答答xxdd| 日韩视频免费观看高清完整版| 亚洲色图在线看| 99精品视频在线播放观看| 国产女人aaa级久久久级| 狠狠色丁香婷婷综合| 日韩三区在线观看| 日本不卡一区二区| 欧美日韩国产天堂| 亚洲高清中文字幕| 在线成人免费视频| 日本成人在线一区| 日韩欧美国产1| 久久精品国产第一区二区三区| 日韩三级免费观看| 国产一区二区在线看| 精品久久久久久久久久久久久久久久久 | 欧美日韩在线免费视频| 国产精品网友自拍| 国产91精品免费| 国产精品视频一二三| 国产精品2024| 国产精品美女一区二区三区| 9人人澡人人爽人人精品| 国产精品乱码一区二区三区软件| 成人av免费在线观看| 日韩伦理av电影| 欧美在线观看视频在线| 日韩成人精品视频| 精品成人一区二区三区| 国产一区二区三区久久久 | 一区二区三区四区激情| 欧美性大战久久| 国产精品免费免费| 成人18视频在线播放| 一区二区三区在线视频播放| 欧美理论片在线| 久久国产精品72免费观看| 国产目拍亚洲精品99久久精品| 91香蕉视频污| 日韩成人伦理电影在线观看| 欧美国产欧美综合| 欧美视频一区二区三区在线观看| 老色鬼精品视频在线观看播放| 国产精品乱码一区二三区小蝌蚪| 欧美三级电影一区| 成人免费视频视频在线观看免费| 亚洲日本青草视频在线怡红院 | 日本在线不卡视频| 国产精品天干天干在线综合| 欧美日韩久久不卡| 国产精品888| 男男视频亚洲欧美| 亚洲人成网站色在线观看| 日韩欧美国产高清| 在线观看视频一区| 国产91在线观看丝袜| 日本91福利区| 亚洲综合一区二区三区| 国产偷国产偷精品高清尤物| 884aa四虎影成人精品一区| 99久久99精品久久久久久| 久久丁香综合五月国产三级网站 | 欧美人狂配大交3d怪物一区| 成人福利视频网站| 毛片不卡一区二区| 亚洲国产综合在线| 亚洲免费电影在线| 国产精品人成在线观看免费| 欧美一区二区三区在线观看 | 久久这里只有精品首页| 这里只有精品电影| 欧美日韩欧美一区二区| 91麻豆成人久久精品二区三区| 国产美女精品人人做人人爽| 麻豆成人av在线| 视频在线观看一区| 水野朝阳av一区二区三区| 在线综合视频播放| 成人欧美一区二区三区小说| 精品国产一区二区三区久久影院 | 亚洲成va人在线观看| 中文字幕亚洲区| 国产欧美精品在线观看| 26uuu色噜噜精品一区二区| 日韩一区二区免费在线电影 | 日本系列欧美系列| 亚洲午夜免费电影| 亚洲午夜国产一区99re久久| 一区二区三区美女| 一个色综合av| 亚洲成av人**亚洲成av**| 午夜一区二区三区视频| 一区二区三区视频在线看| 亚洲综合一区二区三区| 亚洲成人资源在线| 免费在线观看不卡| 精品午夜久久福利影院 | 国产欧美一区二区精品性色| 国产精品久久福利| 国产精品色呦呦| 国产喂奶挤奶一区二区三区| 久久精品人人做人人综合| 国产日韩欧美制服另类| 国产精品久久久久久久午夜片| 国产精品女同一区二区三区| 亚洲人成影院在线观看| 亚洲欧美电影一区二区| 午夜在线成人av| 久久精品国产在热久久| 国产成人在线看| 91国产成人在线| 欧美大片国产精品| 日本一区二区三区国色天香 | 亚洲欧美日韩国产另类专区| 一区二区三区在线观看国产| 蜜臀av亚洲一区中文字幕| 国产91在线观看丝袜| 欧美伊人久久久久久久久影院 | 3751色影院一区二区三区| 成人激情电影免费在线观看| 91在线云播放| 欧美一区在线视频| 国产女同互慰高潮91漫画| 亚洲成人先锋电影| 丁香桃色午夜亚洲一区二区三区| 91视频一区二区三区| 欧美xingq一区二区| 成人欧美一区二区三区白人| 亚洲gay无套男同| av不卡在线观看| 日韩精品一区二区三区视频在线观看 | 国产在线一区观看| 欧美午夜电影在线播放| 国产欧美一区二区精品婷婷|