最近由CREO8.0的代码升级到9.0,发现有些函数不能用了,其中就有ProMdlDataGet,用来获取图纸完整路径。原来是过时了,只能由其他函数来取代,在PTC官网社区看到的回复
要用这几个方法来取代。
ProPath ppath;
ProMdlOriginGet(p_asm, ppath);
char* fullname = wchar_tTOchar(ppath);
ProPath r_path;//文件路径
ProMdlName r_file_name;//不带扩展名的文件名
ProMdlExtension r_extension;//扩展名,prt、asm
int a = 0;
int* r_version = &a;//小版本
ProError perror = ProFileMdlnameParse(ppath, r_path, r_file_name, r_extension, r_version);
char* name = wchar_tTOchar(r_file_name);
char* type = wchar_tTOchar(r_extension);
我用了ProMdlOriginGet和ProFileMdlnameParse来实现之前的功能。
wchar_tTOchar用来实现中文转码,一并奉上
char* wchar_tTOchar(const wchar_t* arg)
{
int iSize = WideCharToMultiByte(CP_ACP, 0, arg, -1, NULL, 0, NULL, NULL);
char* chdata = (char*)malloc(iSize * sizeof(char));
WideCharToMultiByte(CP_ACP, 0, arg, -1, chdata, iSize, NULL, NULL);
return chdata;
}