簡體   English   中英

OpenCV 警告:“函數編譯為本機”

[英]OpenCV warning: "function compiled as native"

我使用 Visual Studio 2010 創建了一個 Windows 窗體項目,並從使用 OpenCV 的舊控制台項目移植了我的一些代碼。 我在編譯時收到以下消息:

opencv\\include\\opencv\\cxoperations.hpp(81): warning C4793: 'anonymous namespace'::CV_XADD' : function compiled as native :

經過一番挖掘,這似乎是 CLR 支持設置的問題。 我看過一些討論同一問題的帖子,但我的問題更籠統:

這與“native”和“clr”有什么關系? 不同級別的 clr 支持有什么區別? 我認為我沒有找到一個頁面可以在被一堆其他細節重載之前簡明地告訴我這個概念。

謝謝。

簡短回答:聽起來您正在將項目編譯為 C++/CLI。 如果您需要普通的非托管 C++,請使用 Visual Studio 中的 C++“Win32 項目”模板,而不是“Windows 窗體應用程序”模板。

更長的答案:C++/CLI 程序可以包含兩種類型:

  • Native - 這些是普通的 C++ 類型。
  • CLR - 這些是真正托管的 .NET 類型的特殊類型(“引用類”)。

C++/CLI 的神奇之處在於,您可以在一個程序中將普通的本機 C++ 類型與 .NET 類型混合使用。 您可以從本機類型調用 CLR 類型並返回,C++/CLI 會生成必要的互操作代碼。

通常,如果您擁有現有的 .NET 代碼和本機代碼,並且需要讓它們協同工作,那么您只會擔心這一點。 如果您沒有這種情況,您只需使用普通的本機 C++。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM