我正在尝试创建一个独立的 Solidworks 应用程序(我希望我的 c++ 程序在 Solidworks 中创建新的几何图形,在后台运行)。我正在使用 msvc++ express 2010。
我已尝试实现此处建议的以下代码
//Import the SolidWorks type library
#import "sldworks.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
//Import the SolidWorks constant type library
#import "swconst.tlb" raw_interfaces_only, raw_native_types, no_namespace, named_guids
int _tmain(int argc, _TCHAR* argv[])
{
//Initialize COM
CoInitialize(NULL);
//Use ATL smart pointers
CComPtr<ISldWorks> swApp;
//Create an instance of SolidWorks
HRESULT hres = swApp.CoCreateInstance(__uuidof(SldWorks), NULL, CLSCTX_LOCAL_SERVER);
//My Code here
//Shut down SolidWorks
swApp->ExitApp();
// Release COM reference
swApp = NULL;
//Uninitialize COM
CoUninitialize();
return 0;
}
它不会抱怨库的导入语句,但由于以下错误而无法构建:
1>main.cpp(19): error C2065: 'CComPtr' : undeclared identifier
1>main.cpp(19): error C2275: 'ISldWorks' : illegal use of this type as an expression
1> c:\users\nolan\documents\c++\solidworks_test\solidworks_test\debug\sldworks.tlh(7515) : see declaration of 'ISldWorks'
1>main.cpp(19): error C2065: 'swApp' : undeclared identifier
1>main.cpp(22): error C2065: 'swApp' : undeclared identifier
1>main.cpp(22): error C2228: left of '.CoCreateInstance' must have class/struct/union
1> type is ''unknown-type''
1>main.cpp(26): error C2065: 'swApp' : undeclared identifier
1>main.cpp(26): error C2227: left of '->ExitApp' must point to class/struct/union/generic type
1> type is ''unknown-type''
1>main.cpp(29): error C2065: 'swApp' : undeclared identifier
显然我错过了一些东西,但我无法弄清楚那是什么。我觉得它与 ATL 有关,但我不确定......请帮忙。
谢谢
编辑:
好的,我已经下载了 windows development kit 8.0,所有的文件都在那里。我已经在属性页中静态链接到 ATL,我还尝试链接目录中的库文件:C:\Program Files\Windows Kits\8.0\Lib\Atl
但是那些头文件无处可寻……请帮忙。