卖逼视频免费看片|狼人就干网中文字慕|成人av影院导航|人妻少妇精品无码专区二区妖婧|亚洲丝袜视频玖玖|一区二区免费中文|日本高清无码一区|国产91无码小说|国产黄片子视频91sese日韩|免费高清无码成人网站入口

動態(tài)求和怎么操作 excel filter如何求和?

excel filter如何求和?Office版是365預覽體驗版,引入了動態(tài)數(shù)組的概念。寫數(shù)組公式時,不需要以三個鍵結(jié)尾,所以公式兩端沒有{}。第一個是常規(guī)的sumifs多條件求和函數(shù),寫起來很簡單

excel filter如何求和?

Office版是365預覽體驗版,引入了動態(tài)數(shù)組的概念。寫數(shù)組公式時,不需要以三個鍵結(jié)尾,所以公式兩端沒有{}。

第一個是常規(guī)的sumifs多條件求和函數(shù),寫起來很簡單。

二是使用lookup函數(shù)進行多條件查找,然后使用iferror處理錯誤值。

三是多條件求和的帶求和函數(shù)的數(shù)組公式的編寫。

第四種是使用vlookup嵌套if進行多條件查找,然后使用iferror處理錯誤的數(shù)組公式。

第五個sumproduct函數(shù)的正規(guī)書寫。

第六個索引嵌套匹配進行多條件查找,然后使用iferror處理。

第七種是多條件求和的sum和if的寫法,這種用法的延伸就是可以使用textjoin和if進行一對多搜索。

第八個過濾公式暫時是預覽體驗版獨有的功能,可用于一對多搜索或多條件搜索。

sum和switch的第九種嵌套用法,switch也是365和2019的新功能。其實開關(guān)功能挺好玩的。可以用t

加載動態(tài)連接庫文件失敗該如何解決?

第一步,我從一個簡單的調(diào)用開始,定義一個簡單的函數(shù),這個函數(shù)只實現(xiàn)了一個整數(shù)加法和:

LIBEXPORT_API int mySum(int a,int b){ return a b;}

C#導入定義:

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern int mySum(int a,int b);

}

在C#中調(diào)用測試:

int iSum(,);

運行查看iSum的結(jié)果是5,調(diào)用是正確的。實驗第一步完成,表明在C#中可以調(diào)用用戶自定義的動態(tài)鏈接庫函數(shù)。

第二步,我定義了字符串操作的函數(shù)(為了簡單起見,我還是用之前的函數(shù)名),返回結(jié)果是字符串:

LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,s,a);返回a;}

C#導入定義:公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,

通話約定)]

public static extern string mySum(字符串a(chǎn),字符串b);

}

在C#中調(diào)用測試:

字符串strDest

string strTmp (45,strDest);

運行視圖的結(jié)果是strTmp 45,但是strDest是空的。我修改動態(tài)鏈接庫的實現(xiàn),返回結(jié)果是字符串b:

LIBEXPORT_API char *mySum(char *a,char *b){sprintf(b,s,a)return b;}

修改C# import的定義,將字符串B改為ref模式:

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern string mySum(string a,ref string b);

}

用C#再次調(diào)用測試:

字符串strDest

string strTmp (45,ref strDest);

strTmp和strDest都不正確,并且包含不可見的字符。然后修改C# import的定義,將CharSet從Auto改為Ansi:

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern string mySum(字符串a(chǎn),字符串b);

}

用C#再次調(diào)用測試:

字符串strDest

字符串strTmp RefComm。mySum(45,參考strDest);

運行視圖的結(jié)果是strTmp 45,但是字符串strDest沒有賦值。第二步是意識到函數(shù)返回了一個字符串,但未能在函數(shù)出口參數(shù)中輸出它。再次修改C#導入定義,修改字符串B作為引用(ref):

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern string mySum(string a,ref string b);

}

運行時調(diào)用失敗,執(zhí)行無法繼續(xù)。

第三步,修改動態(tài)鏈接庫的實現(xiàn),將B改為雙指針:

LIBEXPORT_API char *mySum(char *a,char **b){sprintf((*b),s,a);return * b;}

C#導入定義:

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern string mySum(string a,ref string b);

}

在C#中調(diào)用測試:

字符串strDest

字符串strTmp RefComm。mySum(45,參考strDest);

運行查看的結(jié)果是strTmp和strDest都是45,調(diào)用正確。第三步實現(xiàn)函數(shù)出口參數(shù)的正確輸出結(jié)果。

第四步,修改動態(tài)鏈接庫的實現(xiàn),實現(xiàn)整數(shù)參數(shù)的輸出:

LIBEXPORT_API int mySum(int a,int b,int * c){ * ca b;return * c;}

C#導入的定義:

公共類RefComm

{

[DllImport(LibEncrypt.dll,

入口點mySum,

字符集,調(diào)用約定)]

public static extern int mySum(int a,int b,ref int c);

}

在C#中調(diào)用測試:

int c0

int iSum RefComm。mySum(,,ref c);

運行查看的結(jié)果是iSum和C都是5,調(diào)用正確。

經(jīng)過以上步驟的實驗,我基本掌握了如何定義動態(tài)庫函數(shù),如何在C#中定義import。在此基礎(chǔ)上,我很快實現(xiàn)了C#中變長加密函數(shù)的調(diào)用,目標達到了。

三。結(jié)論

在C#中調(diào)用C編寫的動態(tài)鏈接庫函數(shù)時,如果需要輸出導出參數(shù),需要使用指針,需要使用字符串的雙指針,需要使用C#的導入定義的引用(ref)定義。

對于函數(shù)返回值,C#導入定義和C動態(tài)庫函數(shù)聲明定義需要一致,否則函數(shù)調(diào)用會失敗。在定義導入時,一定要注意CharSet和CallingConvention參數(shù),否則調(diào)用會失敗或者結(jié)果會異常。運行時,動態(tài)鏈接庫可以放在C#程序的目錄下。我這里有一個C#動態(tài)鏈接庫,兩個動態(tài)鏈接庫運行在同一個目錄下。