2011-11-06 40 views
1

我想從Microsoft Visual C++ 6.0中的其他文件導入函數。我怎樣才能做到這一點?我有這個嘗試如下:從不同的C文件導入函數

#include <stdio.h> 
#include <math.h> 
#include <stdlib.h> 
#import <functions.cpp> 

其中functions.cpp是從哪兒我要導入功能的文件名。但這給出了一個錯誤:F:\ CC++ \ Term Project \ Dos Plotter \ Functiom Plotter.cpp(6):致命錯誤:C1083:無法打開類型庫文件:'Functions.cpp':沒有此文件或目錄

我該如何解決這個問題?

+0

'致命錯誤C1083'有很多原因。查看此鏈接的各種原因。 http://msdn.microsoft.com/en-us/library/et4zwx34(v=vs.80).aspx – Bhaskar

回答

3

#import指令用於與類型庫,經常COM或.Net,而不是C++源文件。有關完整的詳細信息,請參閱the MSDN page

爲了從其他文件中包含C++函數,通常需要使用#include指令(details)。這包括編譯期間來自給定文件的代碼。大多數情況下,您應該包含一個包含函數原型的頭文件;可以包含代碼文件,但不是通常需要的或總是安全的。

要做到這一點,你應該爲你的函數提供兩個文件,一個頭文件和一個源文件。 頭將讀取類似:

#pragma once 

void Function(int arg); 

和源:

#include "functions.hpp" 

void Function(int arg) { ++arg; } 

另一個文件中使用這個,你做:

#include "functions.hpp" 

void OtherFunction() 
{ 
    Function(2); 
} 

你也應該注意,頭通常應該只包含一次。保證這一點的MSVC標準方法是在開始時添加#pragma once

編輯:並解決您發佈的特定錯誤,它適用於#import#include,您試圖包含文件必須編譯器的搜索路徑內的某個地方。在Visual Studio中,您應該添加項目包含的必要路徑(這因版本而異,但通常在項目屬性 - >編譯器下)。

4

1)您的意思是functions.hpp?除非你很清楚你在做什麼,否則C/cpp文件不應該是#included。

2)添加的位置的文件到自定義的包含路徑在項目屬性,或者使用include "foo"格式而不是include <foo>

3)進口是不明確的C.你需要單獨原型和實現,包括保護原型文件和原型文件。具有在同一目錄文件functions.cpp

0

,使用include "functions.cpp"代替