我有一個C++ aplication一種形式(Form1.h)和plugin.ccp文件,它是實際的應用.The程序是用於Mach3的CNC CONTROLER一個插件,其通過與CNC機牀comunicates USB。全局變量++錯誤LNK2020
我希望能在Form1.h和plugin.ccp使用的全局變量。 A試用我在這個網站上找到的解決方案。
Form1.h:
extern BOOL B1;
Form1.ccp
#include "Form1.h"
BOOL B1 = TRUE ;
plugin.ccp
#include "Form1.h"
而且能順利完成編譯。 但是,當一個類型是這樣的
Form1.h
B1 = FALSE;
// or
SomeOtherVar = B1;
它給了我
Error 1 error LNK2020: unresolved token (0A00003B) "int mach_plugin::B1" ([email protected][email protected]@3HA) E:\mach_vmotion\Plugin.obj mach_vmotion Error 2 error LNK2020: unresolved token (0A00000E) "int mach_plugin::B1" ([email protected][email protected]@3HA) E:\mach_vmotion\Form1.obj mach_vmotion Error 3 error LNK2001: unresolved external symbol "int mach_plugin::B1" ([email protected][email protected]@3HA) E:\mach_vmotion\Form1.obj mach_vmotion Error 4 error LNK2001: unresolved external symbol "int mach_plugin::B1" ([email protected][email protected]@3HA) E:\mach_vmotion\Plugin.obj mach_vmotion Error 5 error LNK1120: 3 unresolved externals E:\mach_vmotion\Debug\mach_vmotion.dll mach_vmotion
一概而論:「全局變量是不好的」。通過不使用它們解決您的問題。 –
什麼是'mach_plugin'?它看起來像你沒有發佈你的問題所需的所有上下文,例如你的聲明的封閉範圍。 –
如何使用不帶全局變量的單獨線程將數據發送到USB? – Asen