[問題] 一個專案使用兩種namespace
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
VC++ 2008
額外使用到的函數庫(Library Used): (Ex: OpenGL, ...)
專案資料夾有訊號擷取卡專用的class檔案
問題(Question):
我將程式分成兩個部分 主程式是建立Socket通訊
主程式用的namespace是std
副程式是訊號擷取用的程式 我將此副程式放在.h檔裡
由主程式去include放在.h檔裡的副程式來呼叫
為了使用訊號擷取卡的指令 所以必須使用該擷取卡提供的namespace
然後副程式我有新增一些東西 所以還有使用到std這個namespace
所以副程式共使用了兩種namespace
主程式及副程式若單獨分開編譯不會有任何error 也都可以使用
但不管是用我這種呼叫方式 或是將主 副程式放在同一個cpp檔裡編譯
主程式建立Socket的其中一行會出現error
不知該如何解決
程式預期功能:
此程式預期功能是當通訊成功建立時 呼叫副程式開始擷取訊號
錯誤結果(Wrong Output):
初始化Socket通訊的部分
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
這一行出現 error c2872 'uint8': ambiguous symbol 的error
程式碼(Code):(請善用置底文網頁, 記得排版)
我的主副程式大致上的寫法如下:
//以下是主程式,放在cpp檔裡
.....
#include <winsock.h>
#include "InstantAI.h"
using namespace std;
#pragma comment(lib,"ws2_32.lib") //Winsock Library
int main()
{
......
if(socket_used == true)
{
// Initialize Winsock.
WSADATA wsaData;
SOCKET AcceptSocket;
int iResult = WSAStartup( MAKEWORD(2,2), &wsaData );
......
Datareadfunction()
......
}
}
//以下是副程式,放在InstantAI.h檔裡
.....
using namespace Automation::BDaq;
using namespace std;
void Datareadfunction()
{
....
}
經反覆測試發現似乎是使用了兩種namespace造成衝突
請問這問題該如何解決?
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 163.25.118.211
※ 文章網址: https://www.ptt.cc/bbs/C_and_CPP/M.1433524717.A.35E.html
※ 編輯: t78923t (163.25.118.211), 06/06/2015 01:19:43
→
06/06 01:19, , 1F
06/06 01:19, 1F
※ 編輯: t78923t (163.25.118.211), 06/06/2015 01:23:06
你的意思是我兩個namespace下 有同時使用同一個變數造成重複定義namespace嗎?
如果是這樣的話 C++應該會幫我指出是哪一個變數或func吧?
但他是特別指出該行的'uint8': ambiguous symbol
這我不知道是什麼意思
※ 編輯: t78923t (163.25.118.211), 06/06/2015 01:30:22
→
06/06 01:33, , 2F
06/06 01:33, 2F
→
06/06 01:35, , 3F
06/06 01:35, 3F
你是指用ctrl+F 搜尋每個有用到的header中的"uint8"嗎??
※ 編輯: t78923t (163.25.118.211), 06/06/2015 01:44:33
→
06/06 08:50, , 4F
06/06 08:50, 4F
推
06/06 22:04, , 5F
06/06 22:04, 5F
若不include"InstantAI.h",單純只有Socket部分的主程式並不會有此error
→
06/07 13:12, , 6F
06/07 13:12, 6F
→
06/07 13:12, , 7F
06/07 13:12, 7F
→
06/07 13:13, , 8F
06/07 13:13, 8F
→
06/07 13:13, , 9F
06/07 13:13, 9F
→
06/07 13:13, , 10F
06/07 13:13, 10F
名字一樣簽名不同的意思是??
※ 編輯: t78923t (120.126.5.217), 06/07/2015 20:35:03
→
06/08 00:36, , 11F
06/08 00:36, 11F
→
06/08 00:37, , 12F
06/08 00:37, 12F
→
06/08 00:37, , 13F
06/08 00:37, 13F
→
06/08 01:29, , 14F
06/08 01:29, 14F
推
06/08 01:36, , 15F
06/08 01:36, 15F
→
06/08 01:37, , 16F
06/08 01:37, 16F
→
06/08 01:37, , 17F
06/08 01:37, 17F
→
06/08 01:38, , 18F
06/08 01:38, 18F
→
06/08 01:38, , 19F
06/08 01:38, 19F
推
06/08 01:42, , 20F
06/08 01:42, 20F
→
06/08 01:43, , 21F
06/08 01:43, 21F
討論串 (同標題文章)
完整討論串 (本文為第 1 之 2 篇):