VS2008裡 struct 型別重定義 錯誤

2021-06-02 09:48:57 字數 1140 閱讀 4915

在vs2008裡新增了在vc6.0裡形成的office庫檔案的類 excel.h,excel.cpp,就是我在vc6裡做操作office的**時候新增的庫檔案,然後把它們( excel.h,excel.cpp)載入vs2008裡(因為vs2008裡夾在的類在很多的資料夾裡,而不是在乙個資料夾)

然後就報很多的錯誤。下面的錯誤只是一部分,

錯誤 1 error c2011: 「font」: 「struct」型別重定義 

錯誤 2 error c2011: 「picture」: 「struct」型別重定義

錯誤 3 error c2027: 使用了未定義型別「font」 

錯誤 4 error c3861: 「invokehelper」: 找不到識別符號 

錯誤 5 error c2027: 使用了未定義型別「font」 

錯誤 6 error c3861: 「invokehelper」: 找不到識別符號 

錯誤 7 error c2027: 使用了未定義類 

錯誤 14 error c3861: 「invokehelper」: 找不到識別符號 

錯誤 15 error c2027: 使用了未定義型別「font」 

錯誤 16 error c3861: 「invokehelper」: 找不到識別符號 

錯誤 17 error c2027: 使用了未定義型別「font」 

錯誤 18 error c3861: 「invokehelper」: 找不到識別符號 

錯誤 19 error c2027: 使用了未定義型別「font」

摸索了半天,總算解決了,原因如下:在vs2008的comdef.h檔案中有這麼兩句:struct font : ifontdisp {};和struct picture : ipicturedisp {};結果導致老是出現你所說的衝突,但是vc6下就沒問題,原因是vc6的comdef.h檔案中沒有上面的這兩句定義。

解決方法是為excel9新增namespace :

將excel.h 檔案中的定義的class{}放到 namespace excel 中;

將excel.cpp 檔案中 的函式實現部分 放到 namespace excel {}中。

在#include "excel.h" 時加上 using namespace excel;

**:

VS2008常用快捷

命令列 devenv 啟動vs studion isqlw 啟動sql2000查詢分析器 sqlwb 啟動sql2005企業管理器 inetmgr 啟動iis管理器 除錯快捷鍵 f5 啟動除錯 估計是最常用的了 f9 新增斷點 f10 逐過程 f11 逐語句 ctrl f5 開始執行 不除錯 shi...

VS2008編譯問題!

vs2005鏈結問題 lnk2005錯誤 error lnk2005 free 已經在 libcmtd.lib dbgheap.obj 中定義 以前經常遇到這個警告資訊,因為執行並沒有什麼問題,所以也沒深究。但是耿耿於懷那個 0 個錯誤,0 個警告 的成功提示,在網上搜了一下。原來問題出在預設庫的引...

vs2008 編譯驅動

一 c c 屬性設定 1.新增包含檔案 wdk inc crt wdk inc api wdk inc ddk 2.設定目標平台 preprocessor x86 3.修改呼叫約定為 stdcall gz 4.執行時庫選擇 多執行緒除錯 mtd 或者多執行緒 mt 基本執行時檢查 預設值 二 lin...