定義的函式名和巨集衝突的問題。
這兩天寫了一個自定義的服務程式,Service->StartService()來啟動我的服務程式,平時執行完好,直到我把這個Service類匯出的時候出現了問題,無法找類的StartService的方法,這是為什麼呢,因為winsvr.h標頭檔案中定了StartService巨集:
#ifdef UNICODE
#define StartService StartServiceW#else
#define StartService StartServiceA
#endif // !UNICODE
所以我匯出的函式名其實是StartServiceA,所以函式命名的時候要注意,不能和系統的巨集函式同名,否則會使用巨集指向的值來命名函式,不作為匯出函式基本沒什麼問題,匯出的時候就會出現莫名其妙的無法連結的問題。
相關推薦
定義的函式名和巨集衝突的問題。
這兩天寫了一個自定義的服務程式,Service->StartService()來啟動我的服務程式,平時執行完好,直到我把這個Service類匯出的時候出現了問題,無法找類的StartService的方法,這是為什麼呢,因為winsvr.h標頭檔案中定了Start
js中避免函式名和變數名跟別人衝突(1)
方法1: (function(){ var m = 0; var n = 1; function getName(){ return m;
SparkSQL之自定義函式UDF和UDAF
SparkSQL中有兩種自定函式,在我們使用自帶的函式時無法滿足自己的需求時,可以使用自定義函式,SparkSQL中有兩種自定義函式,一種是UDF,另一種是UDAF,和Hive 很類似,但是hive中還有UDTF,一進多出,但是sparkSQL中沒有,這是因為spark中用 flatMap這
python 列印呼叫函式名和檔名
import inspect import sys def get_current_function_name(): funcName = sys._getframe().f_back.f_code.co_name # 獲取呼叫函式名 print(dir(sys._getframe())) print(di
【程式碼提取】提取一個資料夾裡面的所有Java檔案的類名函式名和變數名
讀取一個資料夾中的Java檔案 #include<iostream> #include<fstream> #include<io.h> #include<vector> #include<string> #inc
連結與自定義函式名同名的庫函式
遇到一個問題: 封裝SQLite3成靜態庫,過程中發現SQLite3的原始碼的shell.c中有main函式: int SQLITE_CDECL main(int argc, char **argv){ char *zErrMsg = 0; She
python 獲取當前函式名和行號
sys._getframe([depth]) Return a frame object from the call stack. If optional integer depth is given, return the frame object that many
【python系列】python 獲取當前位置所在的檔名、函式名和行號
import sys def get_cur_info(): print sys._getframe().f_code.co_filename #當前檔名,可以通過__file__獲得 print sys._getframe().f_code.co_name #當前函式名 pri
C程式中函式名與巨集名稱同名
C語言中,函式名稱和巨集名稱可以相同。可以參考下面的示例程式。 ///////////////////////////////////////////test.cpp #include <stdio.h> void print(int value) {
Python實驗室一段日誌程式碼,獲取當前呼叫的函式名和行號
程式碼如下: #............. class CrawlerLog(object): def __init__(self, logName=None): #............ self.logInfo = pathName + logName
解決巨集定義與函式名衝突的問題
畢竟典型的一個問題是<windows.h>裡面的max和min的巨集定義與 std::numeric_limits<std::streamsize>::max()和std::numeric_li
C++第十週【任務2】定義一個名為CPerson的類,有以下私有成員:姓名、身份證號、性別和年齡,成員函式:建構函式、解構函式、輸出資訊的函式。
/* (程式頭部註釋開始) * 程式的版權和版本宣告部分 * Copyright (c) 2011, 煙臺大學計算機學院學生 * All rights reserved. * 檔名稱: C++第十週【任務2】 * 作
超前引用不可使用類名來定義變量和函數的變量參數,只可用來定義引用或者指針。
引用 使用 nbsp lin 類名 users undefined error eight C:\Users\Administrator\Documents\TreeView\mainwindow.h:31: error: C2079: ‘MainWindow::mytre
cocos2dx 常用函式和巨集定義
最近我們的cocos2d-x遊戲專案已經進入了正式開發的階段了,幾個dev都辛苦碼 程式碼。cocos2d-x還是一套比較方便的api的,什麼action啊、director啊、ccpoint啊都蠻便捷的。但是我看到幾個dev有時 候會很不知道用它們,還是首先自己去寫函式…… 用一些比較原始
C語言巨集定義和巨集定義函式
轉自:http://blog.sina.com.cn/s/blog_861912cd0100tc94.html 要寫好C語言,漂亮的巨集定義是非常重要的。巨集定義可以幫助我們防止出錯,提高程式碼的可移植性和可讀性等。 在軟體開發過程中,經常有一些常用或者通用的功能或者程式碼段,這些功能既
【C/C++】inline函式和static函式和巨集定義的比較
inline行內函數 1.行內函數的定義:行內函數是指用inline關鍵字修飾的函式。如果行內函數在類體內定義,不用inline關鍵字宣告,預設為行內函數。 2.行內函數在函式呼叫點展開,沒有棧幀的開闢和回退。行內函數函式是在編譯時直接插入函式程式碼的,會增加程式碼大小,
findViewById 的偷懶方案,這函式名,哈哈。除了註解和線上生成,多了種偷懶方式
在微博中發現的偷懶方案,好簡單。。 //結果與(...)findViewById(R.id....)一模一樣,採用$作為方法名稱,借鑑自jQuery public <T extends Vie
iOS 使用巨集定義函式和程式碼塊
iOS使用巨集定義函式和程式碼塊 今天在開發過程中碰到一個問題:就是父類中要向外傳送通知,然後子類中或者其他類中來接收它。當然一般是把它寫到類方法中去,但是有個問題,就是如果呼叫的類不是它的子類,就不能直接呼叫,當然也可以採用靜態方法實現,我這裡主要是想用巨集
關於父子元件,router-view和自定義元件名。
做了這麼多路由跳轉了,但是今天下午突發奇想,寫一個父子元件以及自定義元件跳轉的小例子。我理解的,當需要點選按鈕路由跳轉的時候,用router-view,當作為預設子元件,只是顯示的時候用自定義元件名。專案地址:https://github.com/nihaoh
C++ 語言巨集定義函式的使用(定義單行和多行)
昨天筆試問的,不會….. 在軟體開發過程中,經常有一些常用或者通用的功能或者程式碼段,這些功能既可以寫成函式,也可以封裝成為巨集定義。那麼究竟是用函式好,還是巨集定義好?這就要求我們對二者進行合理的取捨。 巨集定義中允許包含兩行以上命令的情形,此時必