Compare commits

...

4 Commits

Author SHA1 Message Date
德 赫尔 81aef27e94 fix: 🐛 修复问题
4 weeks ago
德 赫尔 b8d0a731a3 fix:修复上传ftp失败
1 month ago
德 赫尔 78a404dbac fix;提交合并
1 month ago
德 赫尔 d674e762a7 fix: 🐛 修复ftp传递
1 month ago

@ -31,6 +31,11 @@
#include <time.h> #include <time.h>
#include "k_util.h" #include "k_util.h"
#include "curl_utils.h" #include "curl_utils.h"
#include <windows.h>
#include <string>
#include <fstream>
using namespace std; using namespace std;
#define GUID_LEN 64 #define GUID_LEN 64
@ -80,7 +85,6 @@ string getGuid() {
return buffer; return buffer;
} }
vector<tag_t> getFlowStartsYH(int num, tag_t* c_line_tags) { vector<tag_t> getFlowStartsYH(int num, tag_t* c_line_tags) {
vector<tag_t> starts; vector<tag_t> starts;
for (int i = 0; i < num; i++) { for (int i = 0; i < num; i++) {
@ -105,6 +109,89 @@ MaxFlowInfo copy(MaxFlowInfo old_info) {
return new_info; return new_info;
} }
bool UploadUsingSystemFTP(string server, string username, string password, string local_file, string rev_type, string dataset_type, string idAndRev, string remote_file) {
//std::string server = "192.168.120.92";
//std::string username = "ftp1";
//std::string password = "Jd@tc00"; // 需要实际密码
//std::string local_file = "C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\WD00000644_ceshiwen.docx";
//std::string remote_dir = "/DocumentRevision/MS WordX/WD00000644-10";
//std::string remote_file = "WD00000644_ceshiwen.docx";
// 创建临时脚本文件
std::string script_content =
"open " + server + "\n"
"user " + username + "\n"
"" + password + "\n"
"binary\n"
"mkdir \"" + rev_type + "\"\n"
"cd \"" + rev_type + "\"\n"
"mkdir \"" + dataset_type + "\"\n"
"cd \"" + dataset_type + "\"\n"
"mkdir \"" + idAndRev + "\"\n"
"cd \"" + idAndRev + "\"\n"
//"cd \"" + remote_dir + "\"\n"
"put \"" + local_file + "\" \"" + remote_file + "\"\n"
"quit\n";
// 写入脚本文件到临时目录
char temp_path[MAX_PATH];
GetTempPathA(MAX_PATH, temp_path);
std::string script_file = std::string(temp_path) + "ftp_script.txt";
std::ofstream script(script_file);
if (!script) {
WriteLog("无法创建脚本文件\n");
return false;
}
script << script_content;
script.close();
WriteLog("创建脚本文件: %s\n", script_file.c_str());
// 执行 ftp 命令
std::string command = "ftp -n -s:\"" + script_file + "\"";
WriteLog("执行命令: %s\n", command.c_str());
// 创建进程执行命令
STARTUPINFOA si = { sizeof(si) };
PROCESS_INFORMATION pi;
si.dwFlags = STARTF_USESHOWWINDOW;
si.wShowWindow = SW_HIDE; // 隐藏窗口
if (CreateProcessA(NULL, (LPSTR)command.c_str(), NULL, NULL, FALSE,
CREATE_NO_WINDOW, NULL, NULL, &si, &pi)) {
// 等待命令完成最多60秒
WaitForSingleObject(pi.hProcess, 60000);
DWORD exit_code;
GetExitCodeProcess(pi.hProcess, &exit_code);
CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
// 删除临时脚本文件
DeleteFileA(script_file.c_str());
if (exit_code == 0) {
WriteLog("FTP 上传成功!\n");
return true;
}
else {
WriteLog("FTP 上传失败,退出代码: %d\n", exit_code);
return false;
}
}
else {
DWORD err = GetLastError();
WriteLog("无法启动 FTP 进程,错误: %d\n", err);
DeleteFileA(script_file.c_str());
return false;
}
}
void readGXFlow(tag_t gxLine, vector<MaxFlowInfo>& all_line_info, map<string, FlowInfo>& line_info, MaxFlowInfo max_info) { void readGXFlow(tag_t gxLine, vector<MaxFlowInfo>& all_line_info, map<string, FlowInfo>& line_info, MaxFlowInfo max_info) {
FlowInfo flow_info; FlowInfo flow_info;
tag_t* successors, * Mfg0predecessors; tag_t* successors, * Mfg0predecessors;
@ -504,18 +591,20 @@ void loadBom(tag_t top_bom_line_tag, map<string, CHILD>& child_level1, map<strin
} }
// 下载数据集文件到指定地址并发送到Ftp指定位置 // 下载数据集文件到指定地址并发送到Ftp指定位置
string downloadDataset(tag_t dataset, string ftp_dir, char* type_name, string idAndRev, string username, string pwd) { string downloadDataset(tag_t dataset, string ftp_ip, string port, char* type_name, string idAndRev, string username, string pwd) {
tag_t spec_dataset_rev = NULLTAG, tag_t spec_dataset_rev = NULLTAG,
* ref_objects = NULLTAG; * ref_objects = NULLTAG;
int ref_cnt = 0; int ref_cnt = 0;
char* dataset_type_name = NULL, char* dataset_type_name = NULL,
* pathname = NULL, * pathname = NULL,
* origin_file_name = NULL; * origin_file_name = NULL;
string path = ""; string path,
string dir = ""; dir,
server;
ITKCALL(AE_ask_dataset_named_refs(dataset, &ref_cnt, &ref_objects)); ITKCALL(AE_ask_dataset_named_refs(dataset, &ref_cnt, &ref_objects));
ITKCALL(AOM_UIF_ask_value(dataset, "object_type", &dataset_type_name)); //ITKCALL(AOM_UIF_ask_value(dataset, "object_type", &dataset_type_name));
ITKCALL(AOM_ask_value_string(dataset, "object_type", &dataset_type_name));
for (int jy = 0; jy < ref_cnt; jy++) for (int jy = 0; jy < ref_cnt; jy++)
{ {
@ -525,11 +614,12 @@ string downloadDataset(tag_t dataset, string ftp_dir, char* type_name, string id
strcat(temp_file, "\\"); strcat(temp_file, "\\");
strcat(temp_file, origin_file_name); strcat(temp_file, origin_file_name);
ITKCALL(IMF_export_file(ref_objects[jy], temp_file)); ITKCALL(IMF_export_file(ref_objects[jy], temp_file));
server = server.assign(ftp_ip).append(" ").append(port);
dir = dir.append(string(type_name)).append("/").append(string(dataset_type_name)).append("/").append(idAndRev).append("/").append(string(origin_file_name)); dir = dir.assign(string(type_name)).append("/").append(string(dataset_type_name)).append("/").append(idAndRev);
path = path.append(ftp_dir).append(dir); path = path.assign("ftp://").append(ftp_ip).append(":").append(port).append("/").append(dir).append("/").append(string(origin_file_name));
int result = sendFileByFtp(ftp_dir, temp_file, path, username, pwd); WriteLog("开始传递FTPtemp_file%s,path%s\,username%s\n", temp_file, path.c_str(), username.c_str());
if (result == 1) { bool result = UploadUsingSystemFTP(server, username, pwd, temp_file, type_name, dataset_type_name, idAndRev, origin_file_name);
if (!result) {
path = "FTP传递文件失败"; path = "FTP传递文件失败";
} }
break; break;
@ -689,7 +779,7 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
map<string, CHILD>::iterator child_it; map<string, CHILD>::iterator child_it;
for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) { for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) {
char* type = NULL; char* occ_type = NULL;
bool isContinue = false; bool isContinue = false;
string childColumnStr = ""; string childColumnStr = "";
string childSelectStr = ""; string childSelectStr = "";
@ -702,7 +792,7 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
string clone_id = child_it->second.clone_id; string clone_id = child_it->second.clone_id;
string primay_key = ""; string primay_key = "";
FlowInfo flow_info = line_info[clone_id]; FlowInfo flow_info = line_info[clone_id];
ITKCALL(ifail = AOM_ask_value_string(rev, "object_type", &type)); ITKCALL(ifail = AOM_ask_value_string(line, "bl_occ_type", &occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
@ -710,14 +800,14 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
string tempValue = " "; string tempValue = " ";
bool isInt = false; bool isInt = false;
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, type) == 0) { if (hasElement(typeVec, occ_type) == 0) {
continue; continue;
} }
else { else {
@ -842,9 +932,9 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("工序明细插入语句:%s\n", insertSql.c_str()); WriteLog("工序明细插入语句:%s\n", insertSql.c_str());
WriteLog("工序明细更新语句:%s\n", updateSql.c_str()); //WriteLog("工序明细更新语句:%s\n", updateSql.c_str());
WriteLog("工序明细查询语句:%s\n", selectSql.c_str()); WriteLog("工序明细查询语句:%s\n", selectSql.c_str());
WriteLog("工序明细更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("工序明细更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -860,7 +950,7 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
//if (!resultSql) { //if (!resultSql) {
// WriteLog("数据库语句插入失败\n"); // WriteLog("数据库语句插入失败\n");
//} //}
DOFREE(type); DOFREE(occ_type);
} }
} }
@ -868,7 +958,7 @@ void insertGyGxBom(string xmlUid, bool &showError, ado ado0, tag_t gy_line, tag_
void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> child_level1, map<string, string> gx_cloneid_key, map<string, vector<CHILD>> gx_gbs_bom, map<string, string>& gx_gb_key) { void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> child_level1, map<string, string> gx_cloneid_key, map<string, vector<CHILD>> gx_gbs_bom, map<string, string>& gx_gb_key) {
WriteLog("记录工序工步关系表数据库\n"); WriteLog("记录工序工步关系表数据库\n");
int ifail = 0; int ifail = 0;
char* gx_type = NULL; char* gx_occ_type = NULL;
vector<string> updateVec; vector<string> updateVec;
vector<string> selectVec; vector<string> selectVec;
vector<string> insertVec; vector<string> insertVec;
@ -899,7 +989,7 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
map<string, CHILD>::iterator child_it; map<string, CHILD>::iterator child_it;
for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) { for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) {
bool isGxContinue = false; bool isGxContinue = false;
char* type = NULL; char* gb_occ_type = NULL;
string sqlStr = "insert into "; string sqlStr = "insert into ";
string updateStr = "update "; string updateStr = "update ";
string selectStr = "select * from "; string selectStr = "select * from ";
@ -910,7 +1000,7 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
tag_t gx_item = child_it->second.item; tag_t gx_item = child_it->second.item;
tag_t gx_rev = child_it->second.rev; tag_t gx_rev = child_it->second.rev;
vector<CHILD> gbs = gx_gbs_bom[gx_clone_id]; vector<CHILD> gbs = gx_gbs_bom[gx_clone_id];
ITKCALL(ifail = AOM_ask_value_string(gx_rev, "object_type", &gx_type)); ITKCALL(ifail = AOM_ask_value_string(gx_line, "bl_occ_type", &gx_occ_type));
sqlStr = sqlStr.append(tableName).append("("); sqlStr = sqlStr.append(tableName).append("(");
selectStr = selectStr.append(tableName).append(" "); selectStr = selectStr.append(tableName).append(" ");
@ -931,14 +1021,14 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
string propertyName = parentValueVec[j]; string propertyName = parentValueVec[j];
string tempValue = " "; string tempValue = " ";
string updateValue = ""; string updateValue = "";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, gx_type) == 0) { if (hasElement(typeVec, gx_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -1052,20 +1142,20 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
string childValueStr = ""; string childValueStr = "";
string gb_puid = "";; string gb_puid = "";;
string primay_key = ""; string primay_key = "";
ITKCALL(ifail = AOM_ask_value_string(gb_item, "object_type", &type)); ITKCALL(ifail = AOM_ask_value_string(gb_line, "bl_occ_type", &gb_occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
string propertyName = childValueVec[j]; string propertyName = childValueVec[j];
string tempValue = " "; string tempValue = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, type) == 0) { if (hasElement(typeVec, gb_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -1159,9 +1249,9 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("工步插入语句:%s\n", insertSql.c_str()); WriteLog("工步插入语句:%s\n", insertSql.c_str());
WriteLog("工步更新语句:%s\n", updateSql.c_str()); //WriteLog("工步更新语句:%s\n", updateSql.c_str());
WriteLog("工步查询语句:%s\n", selectSql.c_str()); WriteLog("工步查询语句:%s\n", selectSql.c_str());
WriteLog("工步更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("工步更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -1180,9 +1270,9 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
//} //}
} }
} }
DOFREE(type); DOFREE(gb_occ_type);
} }
DOFREE(gx_type); DOFREE(gx_occ_type);
//更新数据库 //更新数据库
//for (int i = 0; i < updateVec.size(); i++) { //for (int i = 0; i < updateVec.size(); i++) {
// int outputColumn = 0, outputValueCount = 0; // int outputColumn = 0, outputValueCount = 0;
@ -1223,7 +1313,7 @@ void insertGxGb(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, string> gx_cloneid_key) { void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, string> gx_cloneid_key) {
WriteLog("记录工艺路线-工序属性表数据库\n"); WriteLog("记录工艺路线-工序属性表数据库\n");
int ifail = 0; int ifail = 0;
char* type = NULL; char* occ_type = NULL;
// //
string sqlStr = "insert into "; string sqlStr = "insert into ";
string updateStr = "update "; string updateStr = "update ";
@ -1375,20 +1465,20 @@ void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
tag_t item = child_it->second.item; tag_t item = child_it->second.item;
tag_t rev = child_it->second.rev; tag_t rev = child_it->second.rev;
string clone_id = child_it->second.clone_id; string clone_id = child_it->second.clone_id;
ITKCALL(ifail = AOM_ask_value_string(rev, "object_type", &type)); ITKCALL(ifail = AOM_ask_value_string(line, "bl_occ_type", &occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
string propertyName = childValueVec[j]; string propertyName = childValueVec[j];
string tempValue = " "; string tempValue = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, type) == 0) { if (hasElement(typeVec, occ_type) == 0) {
continue; continue;
} }
else { else {
@ -1488,9 +1578,9 @@ void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("工序属性插入语句:%s\n", insertSql.c_str()); WriteLog("工序属性插入语句:%s\n", insertSql.c_str());
WriteLog("工序属性更新语句:%s\n", updateSql.c_str()); //WriteLog("工序属性更新语句:%s\n", updateSql.c_str());
WriteLog("工序属性查询语句:%s\n", selectSql.c_str()); WriteLog("工序属性查询语句:%s\n", selectSql.c_str());
WriteLog("工序属性更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("工序属性更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -1502,7 +1592,7 @@ void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
int result = ado0.ado_QuerySQLNoInputParam(sendChar2); int result = ado0.ado_QuerySQLNoInputParam(sendChar2);
bool resultSql = ado0.executeInsert(sendChar2, sendChar, result); bool resultSql = ado0.executeInsert(sendChar2, sendChar, result);
} }
DOFREE(type); DOFREE(occ_type);
//更新数据库 //更新数据库
/*for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
@ -1533,10 +1623,10 @@ void insertGyGxProp(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
} }
// 工序工艺文件 // 工序工艺文件
void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, vector<string>> level1_level2, map<string, CHILD> child_level2) { void insertGyGxGywj(string xmlUid, string ftp_ip, string ftp_port, string username, string pwd, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, vector<string>> level1_level2, map<string, CHILD> child_level2) {
WriteLog("记录工序工艺文件数据库\n"); WriteLog("记录工序工艺文件数据库\n");
int ifail = 0; int ifail = 0;
char* type = NULL; char* occ_type = NULL;
// //
string sqlStr = "insert into "; string sqlStr = "insert into ";
string updateStr = "update "; string updateStr = "update ";
@ -1698,20 +1788,20 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
string clone_id = child_it->second.clone_id; string clone_id = child_it->second.clone_id;
vector<string> level2_vec = level1_level2[clone_id]; vector<string> level2_vec = level1_level2[clone_id];
int level2_cnt = level2_vec.size(); int level2_cnt = level2_vec.size();
ITKCALL(ifail = AOM_ask_value_string(rev, "object_type", &type)); ITKCALL(ifail = AOM_ask_value_string(line, "bl_occ_type", &occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
string propertyName = childValueVec[j]; string propertyName = childValueVec[j];
string tempValue = " "; string tempValue = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, type) == 0) { if (hasElement(typeVec, occ_type) == 0) {
continue; continue;
} }
else { else {
@ -1724,7 +1814,6 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
char* puid = NULL; char* puid = NULL;
ITK__convert_tag_to_uid(rev, &puid); ITK__convert_tag_to_uid(rev, &puid);
tempValue = puid; tempValue = puid;
childSelectStr = childSelectStr.append(columnName).append("='").append(tempValue).append("' and "); childSelectStr = childSelectStr.append(columnName).append("='").append(tempValue).append("' and ");
childUpdateSelectStr = childUpdateSelectStr.append(columnName).append("='").append(tempValue).append("' and "); childUpdateSelectStr = childUpdateSelectStr.append(columnName).append("='").append(tempValue).append("' and ");
childUpdateWhere = childUpdateWhere.append(columnName).append("='").append(tempValue).append("' and "); childUpdateWhere = childUpdateWhere.append(columnName).append("='").append(tempValue).append("' and ");
@ -1784,7 +1873,7 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
continue; continue;
} }
if (level2_cnt > 0) { if (level2_cnt > 0) {
char* zy_type = NULL; char* zy_occ_type = NULL;
for (int k = 0; k < level2_cnt; k++) { for (int k = 0; k < level2_cnt; k++) {
bool isZyContinue = false; bool isZyContinue = false;
CHILD level2_child = child_level2[level2_vec[k]]; CHILD level2_child = child_level2[level2_vec[k]];
@ -1797,20 +1886,20 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
tag_t zy_item = level2_child.item; tag_t zy_item = level2_child.item;
tag_t zy_rev = level2_child.rev; tag_t zy_rev = level2_child.rev;
string zy_clone_id = level2_child.clone_id; string zy_clone_id = level2_child.clone_id;
ITKCALL(ifail = AOM_ask_value_string(zy_rev, "object_type", &zy_type)); ITKCALL(ifail = AOM_ask_value_string(zy_line, "bl_occ_type", &zy_occ_type));
for (int z = 0; z < childLevel2NameVec.size(); z++) for (int z = 0; z < childLevel2NameVec.size(); z++)
{ {
string columnName = childLevel2NameVec[z]; string columnName = childLevel2NameVec[z];
string propertyName = childLevel2ValueVec[z]; string propertyName = childLevel2ValueVec[z];
string tempValue = " "; string tempValue2 = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, zy_type) == 0) { if (hasElement(typeVec, zy_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -1822,11 +1911,11 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
else if (strcmp(columnName.c_str(), "SPUID") == 0) { else if (strcmp(columnName.c_str(), "SPUID") == 0) {
char* spuid = NULL; char* spuid = NULL;
ITK__convert_tag_to_uid(zy_rev, &spuid); ITK__convert_tag_to_uid(zy_rev, &spuid);
tempValue = spuid; tempValue2 = spuid;
WriteLog("资源类型:%spuid:%s\n", zy_occ_type, spuid);
childLevel2SelectStr = childLevel2SelectStr.append(columnName).append("='").append(tempValue).append("' "); childLevel2SelectStr = childLevel2SelectStr.append(columnName).append("='").append(tempValue2).append("' ");
childLevel2UpdateSelectStr = childLevel2UpdateSelectStr.append(columnName).append("='").append(tempValue).append("' "); childLevel2UpdateSelectStr = childLevel2UpdateSelectStr.append(columnName).append("='").append(tempValue2).append("' ");
childLevel2UpdateWhere = childLevel2UpdateWhere.append(columnName).append("='").append(tempValue).append("'"); childLevel2UpdateWhere = childLevel2UpdateWhere.append(columnName).append("='").append(tempValue2).append("'");
DOFREE(spuid); DOFREE(spuid);
} }
else if (strcmp(columnName.c_str(), "FILE_PATH") == 0) { else if (strcmp(columnName.c_str(), "FILE_PATH") == 0) {
@ -1838,7 +1927,8 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
GRM_relation_t* related_objects = NULL; GRM_relation_t* related_objects = NULL;
ITKCALL(ifail = AOM_ask_value_string(zy_rev, "item_id", &item_id)); ITKCALL(ifail = AOM_ask_value_string(zy_rev, "item_id", &item_id));
ITKCALL(ifail = AOM_ask_value_string(zy_rev, "item_revision_id", &rev_id)); ITKCALL(ifail = AOM_ask_value_string(zy_rev, "item_revision_id", &rev_id));
ITKCALL(AOM_UIF_ask_value(zy_rev, "object_type", &type_name)); ITKCALL(AOM_ask_value_string(zy_rev, "object_type", &type_name));
//ITKCALL(AOM_UIF_ask_value(zy_rev, "object_type", &type_name));
ITKCALL(GRM_list_all_related_objects(zy_rev, &related_cnt, &related_objects)); ITKCALL(GRM_list_all_related_objects(zy_rev, &related_cnt, &related_objects));
string idAndRev = string(item_id) + "-" + string(rev_id); string idAndRev = string(item_id) + "-" + string(rev_id);
for (int i = 0; i < related_cnt; i++) for (int i = 0; i < related_cnt; i++)
@ -1846,11 +1936,12 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
// 判断是否为数据集 // 判断是否为数据集
if (checkIsTypeOrSubtype(related_objects[i].secondary, "Dataset") == 1) if (checkIsTypeOrSubtype(related_objects[i].secondary, "Dataset") == 1)
{ {
string path = downloadDataset(related_objects[i].secondary, ftp_dir, type_name, idAndRev, username, pwd); string path = downloadDataset(related_objects[i].secondary, ftp_ip, ftp_port, type_name, idAndRev, username, pwd);
if (i > 0) { WriteLog("文件路径:%s\n", path.c_str());
tempValue = tempValue.append(";"); if (tempValue2.length() > 1) {
tempValue2 = tempValue2.append(";");
} }
tempValue = tempValue.append(path); tempValue2 = tempValue2.append(path);
} }
} }
DOFREE(type_name); DOFREE(type_name);
@ -1882,24 +1973,24 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
} }
EMH_clear_errors(); EMH_clear_errors();
if (ifail == 0) { if (ifail == 0) {
tempValue = propertyValue; tempValue2 = propertyValue;
} }
else { else {
showError = true; showError = true;
WriteLog("属性异常:%s\n", propertyName.c_str()); WriteLog("属性异常:%s\n", propertyName.c_str());
tempValue = " "; tempValue2 = " ";
} }
DOFREE(propertyValue); DOFREE(propertyValue);
} }
else { else {
tempValue = " "; tempValue2 = " ";
} }
} }
childLevel2ColumnStr = childLevel2ColumnStr.append(columnName); childLevel2ColumnStr = childLevel2ColumnStr.append(columnName);
if (z < childLevel2NameVec.size() - 1) { if (z < childLevel2NameVec.size() - 1) {
childLevel2ColumnStr = childLevel2ColumnStr.append(","); childLevel2ColumnStr = childLevel2ColumnStr.append(",");
} }
childLevel2ValueStr = childLevel2ValueStr.append("'").append(tempValue); childLevel2ValueStr = childLevel2ValueStr.append("'").append(tempValue2);
if (z < childLevel2NameVec.size() - 1) { if (z < childLevel2NameVec.size() - 1) {
childLevel2ValueStr = childLevel2ValueStr.append("',"); childLevel2ValueStr = childLevel2ValueStr.append("',");
} }
@ -1929,9 +2020,9 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("工艺文件插入语句:%s\n", insertSql.c_str()); WriteLog("工艺文件插入语句:%s\n", insertSql.c_str());
WriteLog("工艺文件更新语句:%s\n", updateSql.c_str()); //WriteLog("工艺文件更新语句:%s\n", updateSql.c_str());
WriteLog("工艺文件查询语句:%s\n", selectSql.c_str()); WriteLog("工艺文件查询语句:%s\n", selectSql.c_str());
WriteLog("工艺文件更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("工艺文件更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -1943,10 +2034,10 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
int result = ado0.ado_QuerySQLNoInputParam(sendChar2); int result = ado0.ado_QuerySQLNoInputParam(sendChar2);
bool resultSql = ado0.executeInsert(sendChar2, sendChar, result); bool resultSql = ado0.executeInsert(sendChar2, sendChar, result);
} }
DOFREE(zy_type); DOFREE(zy_occ_type);
} }
} }
DOFREE(type); DOFREE(occ_type);
//更新数据库 //更新数据库
/*for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
@ -1980,7 +2071,7 @@ void insertGyGxGywj(string xmlUid, string ftp_dir, string username, string pwd,
void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, vector<string>> level1_level2, map<string, CHILD> child_level2) { void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag_t gy_item, tag_t gy_rev, map<string, CHILD> child_level1, map<string, vector<string>> level1_level2, map<string, CHILD> child_level2) {
WriteLog("记录工艺资源数据库\n"); WriteLog("记录工艺资源数据库\n");
int ifail = 0; int ifail = 0;
char* type = NULL; char* occ_type = NULL;
// //
string sqlStr = "insert into "; string sqlStr = "insert into ";
string updateStr = "update "; string updateStr = "update ";
@ -2142,20 +2233,20 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
string clone_id = child_it->second.clone_id; string clone_id = child_it->second.clone_id;
vector<string> level2_vec = level1_level2[clone_id]; vector<string> level2_vec = level1_level2[clone_id];
int level2_cnt = level2_vec.size(); int level2_cnt = level2_vec.size();
ITKCALL(ifail = AOM_ask_value_string(rev, "object_type", &type)); ITKCALL(ifail = AOM_ask_value_string(line, "bl_occ_type", &occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
string propertyName = childValueVec[j]; string propertyName = childValueVec[j];
string tempValue = " "; string tempValue = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, type) == 0) { if (hasElement(typeVec, occ_type) == 0) {
continue; continue;
} }
else { else {
@ -2228,7 +2319,7 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
continue; continue;
} }
if (level2_cnt > 0) { if (level2_cnt > 0) {
char* zy_type = NULL; char* zy_occ_type = NULL;
for (int k = 0; k < level2_cnt; k++) { for (int k = 0; k < level2_cnt; k++) {
bool isZyContinue = false; bool isZyContinue = false;
CHILD level2_child = child_level2[level2_vec[k]]; CHILD level2_child = child_level2[level2_vec[k]];
@ -2241,20 +2332,21 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
tag_t zy_item = level2_child.item; tag_t zy_item = level2_child.item;
tag_t zy_rev = level2_child.rev; tag_t zy_rev = level2_child.rev;
string zy_clone_id = level2_child.clone_id; string zy_clone_id = level2_child.clone_id;
ITKCALL(ifail = AOM_ask_value_string(zy_rev, "object_type", &zy_type)); ITKCALL(ifail = AOM_ask_value_string(zy_line, "bl_occ_type", &zy_occ_type));
for (int z = 0; z < childLevel2NameVec.size(); z++) for (int z = 0; z < childLevel2NameVec.size(); z++)
{ {
string columnName = childLevel2NameVec[z]; string columnName = childLevel2NameVec[z];
string propertyName = childLevel2ValueVec[z]; string propertyName = childLevel2ValueVec[z];
string tempValue = " "; string tempValue2 = "";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, zy_type) == 0) { WriteLog("资源类型:%s, val:%s,是否包含:%d\n", zy_occ_type, propertyName.c_str(), hasElement(typeVec, zy_occ_type));
if (hasElement(typeVec, zy_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -2265,12 +2357,12 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
} }
else if (strcmp(columnName.c_str(), "SPUID") == 0) { else if (strcmp(columnName.c_str(), "SPUID") == 0) {
char* spuid = NULL; char* spuid = NULL;
ITK__convert_tag_to_uid(rev, &spuid); ITK__convert_tag_to_uid(zy_rev, &spuid);
tempValue = spuid; tempValue2 = spuid;
WriteLog("资源类型:%spuid:%s\n", zy_occ_type, spuid);
childLevel2SelectStr = childLevel2SelectStr.append(columnName).append("='").append(tempValue).append("' "); childLevel2SelectStr = childLevel2SelectStr.append(columnName).append("='").append(tempValue2).append("' ");
childLevel2UpdateSelectStr = childLevel2UpdateSelectStr.append(columnName).append("='").append(tempValue).append("' "); childLevel2UpdateSelectStr = childLevel2UpdateSelectStr.append(columnName).append("='").append(tempValue2).append("' ");
childLevel2UpdateWhere = childLevel2UpdateWhere.append(columnName).append("='").append(tempValue).append("'"); childLevel2UpdateWhere = childLevel2UpdateWhere.append(columnName).append("='").append(tempValue2).append("'");
DOFREE(spuid); DOFREE(spuid);
} }
else { else {
@ -2298,24 +2390,24 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
} }
EMH_clear_errors(); EMH_clear_errors();
if (ifail == 0) { if (ifail == 0) {
tempValue = propertyValue; tempValue2 = propertyValue;
} }
else { else {
showError = true; showError = true;
WriteLog("属性异常:%s\n", propertyName.c_str()); WriteLog("属性异常:%s\n", propertyName.c_str());
tempValue = " "; tempValue2 = " ";
} }
DOFREE(propertyValue); DOFREE(propertyValue);
} }
else { else {
tempValue = " "; tempValue2 = " ";
} }
} }
childLevel2ColumnStr = childLevel2ColumnStr.append(columnName); childLevel2ColumnStr = childLevel2ColumnStr.append(columnName);
if (z < childLevel2NameVec.size() - 1) { if (z < childLevel2NameVec.size() - 1) {
childLevel2ColumnStr = childLevel2ColumnStr.append(","); childLevel2ColumnStr = childLevel2ColumnStr.append(",");
} }
childLevel2ValueStr = childLevel2ValueStr.append("'").append(tempValue); childLevel2ValueStr = childLevel2ValueStr.append("'").append(tempValue2);
if (z < childLevel2NameVec.size() - 1) { if (z < childLevel2NameVec.size() - 1) {
childLevel2ValueStr = childLevel2ValueStr.append("',"); childLevel2ValueStr = childLevel2ValueStr.append("',");
} }
@ -2345,9 +2437,9 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("插入语句:%s\n", insertSql.c_str()); WriteLog("插入语句:%s\n", insertSql.c_str());
WriteLog("更新语句:%s\n", updateSql.c_str()); //WriteLog("更新语句:%s\n", updateSql.c_str());
WriteLog("查询语句:%s\n", selectSql.c_str()); WriteLog("查询语句:%s\n", selectSql.c_str());
WriteLog("更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -2359,10 +2451,10 @@ void insertGyGxGyzy(string xmlUid, bool& showError, ado ado0, tag_t gy_line, tag
int result = ado0.ado_QuerySQLNoInputParam(sendChar2); int result = ado0.ado_QuerySQLNoInputParam(sendChar2);
bool resultSql = ado0.executeInsert(sendChar2, sendChar, result); bool resultSql = ado0.executeInsert(sendChar2, sendChar, result);
} }
DOFREE(zy_type); DOFREE(zy_occ_type);
} }
} }
DOFREE(type); DOFREE(occ_type);
//更新数据库 //更新数据库
/*for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
@ -2424,7 +2516,7 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
map<string, CHILD>::iterator child_it; map<string, CHILD>::iterator child_it;
for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) { for (child_it = child_level1.begin(); child_it != child_level1.end(); child_it++) {
char* gb_type = NULL; char* gb_occ_type = NULL;
string gx_clone_id = child_it->first; string gx_clone_id = child_it->first;
vector<CHILD> gbs = gx_gbs_bom[gx_clone_id]; vector<CHILD> gbs = gx_gbs_bom[gx_clone_id];
int gb_count = gbs.size(); int gb_count = gbs.size();
@ -2434,7 +2526,7 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
tag_t gb_line = gbs[x].line; tag_t gb_line = gbs[x].line;
tag_t gb_item = gbs[x].item; tag_t gb_item = gbs[x].item;
char* zy_type = NULL; char* zy_occ_type = NULL;
string sqlStr = "insert into "; string sqlStr = "insert into ";
string updateStr = "update "; string updateStr = "update ";
string selectStr = "select * from "; string selectStr = "select * from ";
@ -2442,7 +2534,7 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
string updateWhere = ""; string updateWhere = "";
string gb_puid = ""; string gb_puid = "";
ITKCALL(ifail = AOM_ask_value_string(gb_item, "object_type", &gb_type)); //ITKCALL(ifail = AOM_ask_value_string(gb_line, "bl_occ_type", &gb_occ_type));
sqlStr = sqlStr.append(tableName).append("("); sqlStr = sqlStr.append(tableName).append("(");
selectStr = selectStr.append(tableName).append(" "); selectStr = selectStr.append(tableName).append(" ");
selectAfterUpdateStr = selectAfterUpdateStr.append(tableName).append(" "); selectAfterUpdateStr = selectAfterUpdateStr.append(tableName).append(" ");
@ -2462,14 +2554,14 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
string propertyName = parentValueVec[j]; string propertyName = parentValueVec[j];
string tempValue = " "; string tempValue = " ";
string updateValue = ""; string updateValue = "";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, gb_type) == 0) { if (hasElement(typeVec, gb_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -2581,20 +2673,20 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
string childUpdateWhere = ""; string childUpdateWhere = "";
string childValueStr = ""; string childValueStr = "";
ITKCALL(ifail = AOM_ask_value_string(gb_item, "object_type", &zy_type)); ITKCALL(ifail = AOM_ask_value_string(gbzy_line, "bl_occ_type", &zy_occ_type));
for (int j = 0; j < childNameVec.size(); j++) for (int j = 0; j < childNameVec.size(); j++)
{ {
string columnName = childNameVec[j]; string columnName = childNameVec[j];
string propertyName = childValueVec[j]; string propertyName = childValueVec[j];
string tempValue = " "; string tempValue = " ";
if (strcmp(columnName.c_str(), "_FILTERTYPE") == 0) { if (strcmp(columnName.c_str(), "_bl_occ_type") == 0) {
if (strcmp(propertyName.c_str(), "ALL") == 0) { if (strcmp(propertyName.c_str(), "ALL") == 0) {
continue; continue;
} }
else { else {
vector<string>typeVec; vector<string>typeVec;
Split(propertyName, ";", typeVec); Split(propertyName, ";", typeVec);
if (hasElement(typeVec, zy_type) == 0) { if (hasElement(typeVec, zy_occ_type) == 0) {
continue; continue;
} }
else { else {
@ -2689,9 +2781,9 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
selectSql = Utf8ToGbk(selectSql.c_str()); selectSql = Utf8ToGbk(selectSql.c_str());
updateSelectSql = Utf8ToGbk(updateSelectSql.c_str()); updateSelectSql = Utf8ToGbk(updateSelectSql.c_str());
WriteLog("工步资源插入语句:%s\n", insertSql.c_str()); WriteLog("工步资源插入语句:%s\n", insertSql.c_str());
WriteLog("工步资源更新语句:%s\n", updateSql.c_str()); //WriteLog("工步资源更新语句:%s\n", updateSql.c_str());
WriteLog("工步资源查询语句:%s\n", selectSql.c_str()); WriteLog("工步资源查询语句:%s\n", selectSql.c_str());
WriteLog("工步资源更新后查询语句:%s\n", updateSelectSql.c_str()); //WriteLog("工步资源更新后查询语句:%s\n", updateSelectSql.c_str());
insertVec.push_back(insertSql); insertVec.push_back(insertSql);
updateVec.push_back(updateSql); updateVec.push_back(updateSql);
selectVec.push_back(selectSql); selectVec.push_back(selectSql);
@ -2704,10 +2796,10 @@ void insertGbzy(string xmlUid, bool& showError, ado ado0, map<string, CHILD> chi
bool resultSql = ado0.executeInsert(sendChar2, sendChar, result); bool resultSql = ado0.executeInsert(sendChar2, sendChar, result);
} }
} }
DOFREE(zy_type); DOFREE(zy_occ_type);
} }
} }
DOFREE(gb_type); DOFREE(gb_occ_type);
} }
//更新数据库 //更新数据库
/*for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
@ -2787,7 +2879,7 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
//先获取首选项Jd_MES_Info_Connect解析其中的用户名密码配置文件等信息 //先获取首选项Jd_MES_Info_Connect解析其中的用户名密码配置文件等信息
vector<string> pref_vec1, pref_vec2; vector<string> pref_vec1, pref_vec2;
getPrefStrings1("Jd_MES_Info_Connect", TC_preference_site, pref_vec1); getPrefStrings1("Jd_MES_Info_Connect", TC_preference_site, pref_vec1);
getPrefStrings1("Jd_MES_Info_Connect", TC_preference_site, pref_vec2); getPrefStrings1("Jd_MES_FTP_Info_Connect", TC_preference_site, pref_vec2);
string ip = pref_vec1[0]; string ip = pref_vec1[0];
string databaseName = pref_vec1[1]; string databaseName = pref_vec1[1];
string user = pref_vec1[2]; string user = pref_vec1[2];
@ -2798,9 +2890,10 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
string xmlUid4 = pref_vec1[7]; string xmlUid4 = pref_vec1[7];
string xmlUid5 = pref_vec1[8]; string xmlUid5 = pref_vec1[8];
string xmlUid6 = pref_vec1[9]; string xmlUid6 = pref_vec1[9];
string ftp_dir = pref_vec2[0]; string ftp_ip = pref_vec2[0];
string username = pref_vec2[1]; string ftp_port = pref_vec2[1];
string ftp_pwd = pref_vec2[2]; string username = pref_vec2[2];
string ftp_pwd = pref_vec2[3];
WriteLog("ip:%s\n", ip.c_str()); WriteLog("ip:%s\n", ip.c_str());
WriteLog("databaseName:%s\n", databaseName.c_str()); WriteLog("databaseName:%s\n", databaseName.c_str());
WriteLog("user:%s\n", user.c_str()); WriteLog("user:%s\n", user.c_str());
@ -2811,7 +2904,8 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
WriteLog("工序工艺文件xmlUid:%s\n", xmlUid4.c_str()); WriteLog("工序工艺文件xmlUid:%s\n", xmlUid4.c_str());
WriteLog("工艺资源xmlUid:%s\n", xmlUid5.c_str()); WriteLog("工艺资源xmlUid:%s\n", xmlUid5.c_str());
WriteLog("工步资源 xmlUid:%s\n", xmlUid6.c_str()); WriteLog("工步资源 xmlUid:%s\n", xmlUid6.c_str());
WriteLog("FTP地址:%s\n", ftp_dir.c_str()); WriteLog("FTP地址:%s\n", ftp_ip.c_str());
WriteLog("FTP端口:%s\n", ftp_port.c_str());
ado ado0; ado ado0;
char userName[100]; char userName[100];
strcpy(userName, user.c_str()); strcpy(userName, user.c_str());
@ -2868,6 +2962,7 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag, only_bom, &top_bom_line_tag)); ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag, only_bom, &top_bom_line_tag));
/*ITKCALL(ifail = BOM_create_window(&bom_window_tag)); /*ITKCALL(ifail = BOM_create_window(&bom_window_tag));
ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag, only_bom, &top_bom_line_tag));*/ ITKCALL(ifail = BOM_set_window_top_line_bvr(bom_window_tag, only_bom, &top_bom_line_tag));*/
loadBom(top_bom_line_tag, child_level1, level1_level2, child_level2, gx_gbs_bom, gx_gb_zy, main_flow, line_info); loadBom(top_bom_line_tag, child_level1, level1_level2, child_level2, gx_gbs_bom, gx_gb_zy, main_flow, line_info);
map<string, CHILD>::iterator it1; map<string, CHILD>::iterator it1;
@ -2917,7 +3012,7 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
WriteLog("工序gx_gb_key,key:%s,val:%s\n", it7->first.c_str(), it7->second.c_str()); WriteLog("工序gx_gb_key,key:%s,val:%s\n", it7->first.c_str(), it7->second.c_str());
} }
insertGyGxProp(xmlUid3, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, gx_cloneid_key); insertGyGxProp(xmlUid3, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, gx_cloneid_key);
insertGyGxGywj(xmlUid4, ftp_dir, username, ftp_pwd, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, level1_level2, child_level2); insertGyGxGywj(xmlUid4, ftp_ip, ftp_port, username, ftp_pwd, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, level1_level2, child_level2);
insertGyGxGyzy(xmlUid5, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, level1_level2, child_level2); insertGyGxGyzy(xmlUid5, showError, ado0, top_bom_line_tag, partItem, attachments[i], child_level1, level1_level2, child_level2);
insertGbzy(xmlUid6, showError, ado0, child_level1, gx_gb_key, gx_gbs_bom, gx_gb_zy); insertGbzy(xmlUid6, showError, ado0, child_level1, gx_gb_key, gx_gbs_bom, gx_gb_zy);
ITKCALL(ifail = ME_close_bop_window(bom_window_tag));//有开必有关 ITKCALL(ifail = ME_close_bop_window(bom_window_tag));//有开必有关
@ -2932,6 +3027,7 @@ int JD_BOPInfoToMediDatabase(EPM_action_message_t msg) {
DOFREE(object_TYPE_1); DOFREE(object_TYPE_1);
} }
ado0.close(); ado0.close();
//EMH_clear_errors(); //EMH_clear_errors();
DOFREE(attachments); DOFREE(attachments);
//if (showError == true) { //if (showError == true) {

@ -497,7 +497,7 @@ int JD_GXInfoToMediDatabase(EPM_action_message_t msg) {
} }
WriteLog("8\n"); WriteLog("8\n");
//更新数据库 //更新数据库
for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
string updateSql = updateVec[i]; string updateSql = updateVec[i];
string selectSql = selectVec[i]; string selectSql = selectVec[i];
string insertSql = insertVec[i]; string insertSql = insertVec[i];
@ -522,7 +522,7 @@ int JD_GXInfoToMediDatabase(EPM_action_message_t msg) {
WriteLog("更新失败:%s\n", updateSql.c_str()); WriteLog("更新失败:%s\n", updateSql.c_str());
} }
} }
} }*/
ado0.close(); ado0.close();
//EMH_clear_errors(); //EMH_clear_errors();
DOFREE(attachments); DOFREE(attachments);

@ -296,7 +296,8 @@ int JD_GYInfoToMediDatabase(EPM_action_message_t msg) {
//包含类型,连接数据库 //包含类型,连接数据库
if (log == false) { if (log == false) {
cout << "登陆成功" << endl; cout << "登陆成功" << endl;
tag_t partItem = NULL; tag_t partItem = NULL,
partRev = NULL;
ITEM_ask_item_of_rev(attachments[i], &partItem); ITEM_ask_item_of_rev(attachments[i], &partItem);
char *itemType = NULL; char *itemType = NULL;
AOM_ask_value_string(partItem, "object_type", &itemType); AOM_ask_value_string(partItem, "object_type", &itemType);
@ -428,18 +429,16 @@ int JD_GYInfoToMediDatabase(EPM_action_message_t msg) {
tag_t* material_tags = NULL; tag_t* material_tags = NULL;
ITKCALL(AOM_ask_value_tags(attachments[i], vec[0].c_str(), &material_num, &material_tags)); ITKCALL(AOM_ask_value_tags(attachments[i], vec[0].c_str(), &material_num, &material_tags));
if (material_num > 0) { if (material_num > 0 && material_tags[0] != NULLTAG) {
char* gxType = NULL; char* gxType = NULL;
ITKCALL(ifail = AOM_ask_value_string(material_tags[0], "object_type", &gxType)); ITKCALL(ifail = AOM_ask_value_string(material_tags[0], "object_type", &gxType));
if (strstr(gxType,"Revision") || strstr(gxType, "revision")) { if (strstr(gxType,"Revision") || strstr(gxType, "revision")) {
attachments[i] = material_tags[0];
ITEM_ask_item_of_rev(attachments[i], &partItem); ITEM_ask_item_of_rev(attachments[i], &partItem);
} }
else { else {
partItem = material_tags[0]; partItem = material_tags[0];
ITEM_ask_latest_rev(partItem,&attachments[i]); ITEM_ask_latest_rev(partItem,&attachments[i]);
} }
} }
if (strcmp(vec[1].c_str(), "item") == 0) { if (strcmp(vec[1].c_str(), "item") == 0) {
@ -557,7 +556,7 @@ int JD_GYInfoToMediDatabase(EPM_action_message_t msg) {
} }
WriteLog("8\n"); WriteLog("8\n");
//更新数据库 //更新数据库
for (int i = 0; i < updateVec.size(); i++) { /*for (int i = 0; i < updateVec.size(); i++) {
string updateSql = updateVec[i]; string updateSql = updateVec[i];
string selectSql = selectVec[i]; string selectSql = selectVec[i];
string insertSql = insertVec[i]; string insertSql = insertVec[i];
@ -582,7 +581,7 @@ int JD_GYInfoToMediDatabase(EPM_action_message_t msg) {
WriteLog("更新失败:%s\n", updateSql.c_str()); WriteLog("更新失败:%s\n", updateSql.c_str());
} }
} }
} }*/
ado0.close(); ado0.close();
//EMH_clear_errors(); //EMH_clear_errors();
DOFREE(attachments); DOFREE(attachments);

@ -138,7 +138,7 @@
<IntrinsicFunctions>true</IntrinsicFunctions> <IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>NDEBUG;_WINDOWS;_AMD64_;_USRDLL;CONNOR_JD_EXPORTS;IPLIB=none;%(PreprocessorDefinitions)</PreprocessorDefinitions> <PreprocessorDefinitions>NDEBUG;_WINDOWS;_AMD64_;_USRDLL;CONNOR_JD_EXPORTS;IPLIB=none;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<SDLCheck>true</SDLCheck> <SDLCheck>true</SDLCheck>
<AdditionalIncludeDirectories>D:\WorkEnvironment\tc13ITK\include;D:\WorkEnvironment\tc13ITK\include_cpp;C:\TC13\tclib\include;C:\TC13\tclib\include_cpp;C:\environment\Teamcenter-ENV\ITK_Configuration_File\LiYuan\include;C:\environment\Teamcenter-ENV\ITK_Configuration_File\LiYuan\include_cpp;D:\file store\TC\TC13.3\include;DD:\file store\TC\TC13.3\include_cpp;D:\file store\TC\curllaoban\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories> <AdditionalIncludeDirectories>D:\WorkEnvironment\tc13ITK\include;D:\WorkEnvironment\tc13ITK\include_cpp;C:\TC13\tclib\include;C:\TC13\tclib\include_cpp;C:\environment\Teamcenter-ENV\ITK_Configuration_File\LiYuan\include;C:\environment\Teamcenter-ENV\ITK_Configuration_File\LiYuan\include_cpp;D:\file store\TC\TC13.3\include;DD:\file store\TC\TC13.3\include_cpp;D:\file store\TC\curlToFTP\curl-8.19.0_1-win64-mingw\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
</ClCompile> </ClCompile>
<Link> <Link>
<SubSystem>Windows</SubSystem> <SubSystem>Windows</SubSystem>

@ -36,6 +36,51 @@ vector<string> split_regex(const string& str, const string& pattern) {
return tokens; return tokens;
} }
string URLEncodeFTPPath2(const std::string& path) {
CURL* curl = curl_easy_init();
if (!curl) return path;
std::string result;
std::string encoded_part;
// 分割路径,分别编码每个部分
size_t start = 0;
size_t end = path.find('/');
while (end != std::string::npos) {
std::string part = path.substr(start, end - start);
if (!part.empty()) {
char* encoded = curl_easy_escape(curl, part.c_str(), part.length());
if (encoded) {
result += encoded;
curl_free(encoded);
}
else {
result += part;
}
}
result += '/';
start = end + 1;
end = path.find('/', start);
}
// 最后一部分
if (start < path.length()) {
std::string part = path.substr(start);
char* encoded = curl_easy_escape(curl, part.c_str(), part.length());
if (encoded) {
result += encoded;
curl_free(encoded);
}
else {
result += part;
}
}
curl_easy_cleanup(curl);
return result;
}
// 写入回调函数(用于上传文件) // 写入回调函数(用于上传文件)
size_t read_callback(void* ptr, size_t size, size_t nmemb, FILE* stream) { size_t read_callback(void* ptr, size_t size, size_t nmemb, FILE* stream) {
size_t retcode = fread(ptr, size, nmemb, stream); size_t retcode = fread(ptr, size, nmemb, stream);
@ -53,16 +98,31 @@ int sendFileByFtp(string ftp_url, string file_path, string file_dir, string user
curl = curl_easy_init(); curl = curl_easy_init();
if (curl) { if (curl) {
string encoded_ftp_url = URLEncodeFTPPath2(ftp_url);
// 1. 创建远程目录 // 1. 创建远程目录
curl_easy_setopt(curl, CURLOPT_URL, ftp_url.c_str()); curl_easy_setopt(curl, CURLOPT_URL, encoded_ftp_url.c_str());
curl_easy_setopt(curl, CURLOPT_USERNAME, user.c_str()); curl_easy_setopt(curl, CURLOPT_USERNAME, user.c_str());
curl_easy_setopt(curl, CURLOPT_PASSWORD, pwd.c_str()); curl_easy_setopt(curl, CURLOPT_PASSWORD, pwd.c_str());
curl_easy_setopt(curl, CURLOPT_FTP_CREATE_MISSING_DIRS, CURLFTP_CREATE_DIR); curl_easy_setopt(curl, CURLOPT_FTP_CREATE_MISSING_DIRS, CURLFTP_CREATE_DIR);
// 重要:对于非标准端口,可能需要额外设置
curl_easy_setopt(curl, CURLOPT_FTPPORT, "-"); // 被动模式
curl_easy_setopt(curl, CURLOPT_FTP_USE_EPSV, 0L); // 禁用 EPSV
// 启用详细日志查看具体问题
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
// 设置超时
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 30L);
curl_easy_setopt(curl, CURLOPT_CONNECTTIMEOUT, 10L);
// 执行目录创建 // 执行目录创建
res = curl_easy_perform(curl); res = curl_easy_perform(curl);
if (res != CURLE_OK) { if (res != CURLE_OK) {
WriteLog("´´˝¨ÄżÂźĘ§°Ü>%s\n", curl_easy_strerror(res)); WriteLog("FTP 创建目录失: %s (错误: %d)\n",
curl_easy_strerror(res), res);
result = 1;
goto end;
} }
// 2. 上传文件到新目录 // 2. 上传文件到新目录
@ -83,7 +143,7 @@ int sendFileByFtp(string ftp_url, string file_path, string file_dir, string user
// 设置FTP上传选项 // 设置FTP上传选项
curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L); curl_easy_setopt(curl, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl, CURLOPT_URL, (ftp_url + file_dir).c_str()); curl_easy_setopt(curl, CURLOPT_URL, file_dir.c_str());
curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback); curl_easy_setopt(curl, CURLOPT_READFUNCTION, read_callback);
curl_easy_setopt(curl, CURLOPT_READDATA, file); curl_easy_setopt(curl, CURLOPT_READDATA, file);
@ -160,3 +220,306 @@ string postJSON(string url, string body, long& http_code, string& error)
return response_data; return response_data;
} }
// URL 编码函数(处理空格等特殊字符)
std::string URLEncodeFTPPath(const std::string& path) {
CURL* curl = curl_easy_init();
if (!curl) return path;
std::string result;
std::string encoded_part;
// 分割路径,分别编码每个部分
size_t start = 0;
size_t end = path.find('/');
while (end != std::string::npos) {
std::string part = path.substr(start, end - start);
if (!part.empty()) {
char* encoded = curl_easy_escape(curl, part.c_str(), part.length());
if (encoded) {
result += encoded;
curl_free(encoded);
}
else {
result += part;
}
}
result += '/';
start = end + 1;
end = path.find('/', start);
}
// 最后一部分
if (start < path.length()) {
std::string part = path.substr(start);
char* encoded = curl_easy_escape(curl, part.c_str(), part.length());
if (encoded) {
result += encoded;
curl_free(encoded);
}
else {
result += part;
}
}
curl_easy_cleanup(curl);
return result;
}
bool TestBasicFTPConnection() {
CURL* curl = curl_easy_init();
if (!curl) return false;
// 最简单的测试 - 只连接到根目录
std::string test_url = "ftp://192.168.120.92:22/";
WriteLog("测试基础连接: %s\n", test_url.c_str());
curl_easy_setopt(curl, CURLOPT_URL, test_url.c_str());
curl_easy_setopt(curl, CURLOPT_USERNAME, "ftp1");
curl_easy_setopt(curl, CURLOPT_PASSWORD, "Jd@tc00"); // 需要密码
// 只连接,不执行任何操作
curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
// 启用详细日志
curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L);
CURLcode res = curl_easy_perform(curl);
if (res != CURLE_OK) {
WriteLog("基础连接失败: %s (错误: %d)\n",
curl_easy_strerror(res), res);
}
else {
WriteLog("基础连接成功\n");
}
curl_easy_cleanup(curl);
return (res == CURLE_OK);
}
bool UploadToFTPWithDebug() {
// 你的参数
std::string server = "192.168.120.92";
int port = 22;
std::string username = "ftp1";
std::string password = "Jd@tc00";
std::string remote_dir = "DocumentRevision/MS WordX/WD00000644-10";
std::string filename = "WD00000644_ceshiwen.docx";
std::string local_file = "C:\\Users\\ADMINI~1\\AppData\\Local\\Temp\\2\\WD00000644_ceshiwen.docx";
WriteLog("=== FTP 上传调试开始 ===\n");
WriteLog("服务器: %s:%d\n", server.c_str(), port);
WriteLog("用户名: %s\n", username.c_str());
WriteLog("本地文件: %s\n", local_file.c_str());
WriteLog("远程目录: %s\n", remote_dir.c_str());
WriteLog("文件名: %s\n", filename.c_str());
// 1. 先测试基础连接
if (!TestBasicFTPConnection()) {
WriteLog("基础连接测试失败,请检查网络和凭据\n");
return false;
}
// 2. 创建目录
CURL* curl_dir = curl_easy_init();
if (curl_dir) {
// 构建目录URL - 特别注意空格的处理
std::string dir_path = remote_dir;
// 方法1直接使用路径libcurl 会自动处理空格)
std::string dir_url = "ftp://" + server + ":" + std::to_string(port) + "/" + dir_path + "/";
WriteLog("尝试创建目录URL: %s\n", dir_url.c_str());
curl_easy_setopt(curl_dir, CURLOPT_URL, dir_url.c_str());
curl_easy_setopt(curl_dir, CURLOPT_USERNAME, username.c_str());
curl_easy_setopt(curl_dir, CURLOPT_PASSWORD, password.c_str());
curl_easy_setopt(curl_dir, CURLOPT_FTP_CREATE_MISSING_DIRS, CURLFTP_CREATE_DIR);
// 重要:设置 FTP 选项
curl_easy_setopt(curl_dir, CURLOPT_FTPPORT, "-"); // 被动模式
curl_easy_setopt(curl_dir, CURLOPT_FTP_USE_EPSV, 0L); // 禁用 EPSV
// 设置超时
curl_easy_setopt(curl_dir, CURLOPT_TIMEOUT, 30L);
curl_easy_setopt(curl_dir, CURLOPT_CONNECTTIMEOUT, 10L);
// 启用详细日志
curl_easy_setopt(curl_dir, CURLOPT_VERBOSE, 1L);
CURLcode res = curl_easy_perform(curl_dir);
if (res != CURLE_OK) {
WriteLog("目录创建失败: %s (错误: %d)\n",
curl_easy_strerror(res), res);
// 尝试另一种方法:手动编码
std::string encoded_dir = URLEncodeFTPPath(dir_path);
std::string dir_url2 = "ftp://" + server + ":" + std::to_string(port) + "/" + encoded_dir + "/";
WriteLog("尝试方法2编码URL: %s\n", dir_url2.c_str());
// 重置并重试
curl_easy_reset(curl_dir);
curl_easy_setopt(curl_dir, CURLOPT_URL, dir_url2.c_str());
curl_easy_setopt(curl_dir, CURLOPT_USERNAME, username.c_str());
curl_easy_setopt(curl_dir, CURLOPT_PASSWORD, password.c_str());
curl_easy_setopt(curl_dir, CURLOPT_FTP_CREATE_MISSING_DIRS, CURLFTP_CREATE_DIR);
curl_easy_setopt(curl_dir, CURLOPT_FTPPORT, "-");
curl_easy_setopt(curl_dir, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl_dir);
if (res != CURLE_OK) {
WriteLog("方法2也失败: %s\n", curl_easy_strerror(res));
}
}
else {
WriteLog("目录创建成功\n");
}
curl_easy_cleanup(curl_dir);
}
// 3. 上传文件
CURL* curl_upload = curl_easy_init();
if (!curl_upload) {
WriteLog("初始化上传CURL失败\n");
return false;
}
// 打开本地文件
FILE* file = nullptr;
errno_t err = fopen_s(&file, local_file.c_str(), "rb");
if (err != 0 || file == nullptr) {
// 处理错误
WriteLog("无法打开本地文件>%s\n", local_file.c_str());
curl_easy_cleanup(curl_upload);
return false;
}
// 获取文件大小
fseek(file, 0, SEEK_END);
long file_size = ftell(file);
fseek(file, 0, SEEK_SET);
WriteLog("文件大小: %ld bytes\n", file_size);
// 构建上传URL
std::string upload_path = remote_dir + "/" + filename;
std::string upload_url = "ftp://" + server + ":" + std::to_string(port) + "/" + upload_path;
WriteLog("上传URL: %s\n", upload_url.c_str());
// 设置上传选项
curl_easy_setopt(curl_upload, CURLOPT_URL, upload_url.c_str());
curl_easy_setopt(curl_upload, CURLOPT_USERNAME, username.c_str());
curl_easy_setopt(curl_upload, CURLOPT_PASSWORD, password.c_str());
curl_easy_setopt(curl_upload, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl_upload, CURLOPT_READDATA, file);
curl_easy_setopt(curl_upload, CURLOPT_INFILESIZE_LARGE, (curl_off_t)file_size);
// FTP 特定选项
curl_easy_setopt(curl_upload, CURLOPT_FTPPORT, "-"); // 被动模式
curl_easy_setopt(curl_upload, CURLOPT_FTP_CREATE_MISSING_DIRS, CURLFTP_CREATE_DIR);
// 设置超时
curl_easy_setopt(curl_upload, CURLOPT_TIMEOUT, 60L);
// 启用详细日志
curl_easy_setopt(curl_upload, CURLOPT_VERBOSE, 1L);
// 执行上传
CURLcode res = curl_easy_perform(curl_upload);
// 关闭文件
fclose(file);
if (res != CURLE_OK) {
WriteLog("上传失败: %s (错误: %d)\n",
curl_easy_strerror(res), res);
// 尝试使用编码的URL
std::string encoded_upload_path = URLEncodeFTPPath(upload_path);
std::string upload_url2 = "ftp://" + server + ":" + std::to_string(port) + "/" + encoded_upload_path;
WriteLog("尝试编码URL上传: %s\n", upload_url2.c_str());
//file = fopen(local_file.c_str(), "rb");
// 重新打开文件
errno_t err = fopen_s(&file, local_file.c_str(), "rb");
if (err != 0 || file == nullptr) {
// 处理错误
WriteLog("重新打开文件无法打开本地文件>%s\n", local_file.c_str());
curl_easy_cleanup(curl_upload);
return false;
}
if (file) {
curl_easy_reset(curl_upload);
curl_easy_setopt(curl_upload, CURLOPT_URL, upload_url2.c_str());
curl_easy_setopt(curl_upload, CURLOPT_USERNAME, username.c_str());
curl_easy_setopt(curl_upload, CURLOPT_PASSWORD, password.c_str());
curl_easy_setopt(curl_upload, CURLOPT_UPLOAD, 1L);
curl_easy_setopt(curl_upload, CURLOPT_READDATA, file);
curl_easy_setopt(curl_upload, CURLOPT_INFILESIZE_LARGE, (curl_off_t)file_size);
curl_easy_setopt(curl_upload, CURLOPT_FTPPORT, "-");
curl_easy_setopt(curl_upload, CURLOPT_VERBOSE, 1L);
res = curl_easy_perform(curl_upload);
fclose(file);
}
}
if (res == CURLE_OK) {
WriteLog("=== 文件上传成功 ===\n");
WriteLog("文件已上传到: %s\n", upload_url.c_str());
}
else {
WriteLog("=== 文件上传失败 ===\n");
WriteLog("最终错误: %s\n", curl_easy_strerror(res));
}
curl_easy_cleanup(curl_upload);
return (res == CURLE_OK);
}
void CheckCurlFeatures() {
curl_version_info_data* version_info = curl_version_info(CURLVERSION_NOW);
WriteLog("=== libcurl 功能检查 ===\n");
WriteLog("libcurl 版本: %s\n", version_info->version);
WriteLog("支持的协议:\n");
// 检查协议支持
if (version_info->protocols) {
for (int i = 0; version_info->protocols[i]; i++) {
WriteLog(" - %s\n", version_info->protocols[i]);
}
}
// 检查特定协议
bool supports_ftp = false;
bool supports_sftp = false;
for (int i = 0; version_info->protocols[i]; i++) {
if (strcmp(version_info->protocols[i], "ftp") == 0) {
supports_ftp = true;
}
if (strcmp(version_info->protocols[i], "sftp") == 0) {
supports_sftp = true;
}
}
WriteLog("\nFTP 支持: %s\n", supports_ftp ? "" : "");
WriteLog("SFTP 支持: %s\n", supports_sftp ? "" : "");
if (!supports_ftp && !supports_sftp) {
WriteLog("错误: libcurl 没有编译 FTP/SFTP 支持!\n");
WriteLog("需要重新编译 libcurl 或使用支持 FTP 的版本\n");
}
}

@ -16,3 +16,5 @@ struct HeaderData {
int sendFileByFtp(string ftp_url, string file_path, string file_dir, string user, string pwd); int sendFileByFtp(string ftp_url, string file_path, string file_dir, string user, string pwd);
string postJSON(string url, string token, vector<string> header, string body, long& http_code, string& error); string postJSON(string url, string token, vector<string> header, string body, long& http_code, string& error);
string postJSON(string url, string body, long& http_code, string& error); string postJSON(string url, string body, long& http_code, string& error);
bool UploadToFTPWithDebug();
void CheckCurlFeatures();

@ -1,6 +1,4 @@
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\vc142.pdb d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\vc142.pdb
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxmlerror.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxml.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinystr.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinystr.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\testreadxml.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\testreadxml.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tc_util.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tc_util.obj
@ -14,20 +12,22 @@ d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\lidy
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\nhl_signoff_handler.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\nhl_signoff_handler.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\k_util.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\k_util.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_iteminfotomedidatabase.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_iteminfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_gyinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_gxinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_fileinfotomedidatabase.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_fileinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_bopinfotomedidatabase.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_bopinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_bominfotomedidatabase.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_bominfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\curl_utils.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\curl_utils.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\adoconn.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\adoconn.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxmlparser.obj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxmlparser.obj
d:\source\精雕\jingdiao_connor_jd\x64\release\connor_jd.lib d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxmlerror.obj
d:\source\精雕\jingdiao_connor_jd\x64\release\connor_jd.exp d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\tinyxml.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.lib
d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.exp
d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.dll d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.dll
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.ipdb d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.ipdb
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.iobj d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.iobj
d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.pdb d:\file store\项目代码\精雕\jingdiao_connor_jd\x64\release\connor_jd.pdb
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_gxinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\jd_gyinfotomedidatabase.obj
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\msado15.tli d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\msado15.tli
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\msado15.tlh d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\msado15.tlh
d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.tlog\cl.command.1.tlog d:\file store\项目代码\精雕\jingdiao_connor_jd\connor_ldy\x64\release\connor_jd.tlog\cl.command.1.tlog

@ -2,6 +2,10 @@
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\ADOConn.cpp(88,13): warning C4305: “return”: 从“int”到“bool”截断 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\ADOConn.cpp(88,13): warning C4305: “return”: 从“int”到“bool”截断
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\ADOConn.cpp(257,12): warning C4477: “printf”: 格式字符串“%s”需要类型“char *”的参数,但可变参数 1 拥有了类型“_bstr_t” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\ADOConn.cpp(257,12): warning C4477: “printf”: 格式字符串“%s”需要类型“char *”的参数,但可变参数 1 拥有了类型“_bstr_t”
curl_utils.cxx curl_utils.cxx
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\curl_utils.cxx(53,70): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\curl_utils.cxx(70,69): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\curl_utils.cxx(239,79): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\curl_utils.cxx(256,75): warning C4267: “参数”: 从“size_t”转换到“int”可能丢失数据
JD_BOMInfoToMediDatabase.cpp JD_BOMInfoToMediDatabase.cpp
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
@ -47,68 +51,67 @@ D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(1
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(137,39): warning C4190: “Utf8ToGbk”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(137,39): warning C4190: “Utf8ToGbk”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(78,2): warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(83,2): warning C4996: '_snprintf': This function or variable may be unsafe. Consider using _snprintf_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(260,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(347,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(263,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(275,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(278,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(313,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(324,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(327,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(350,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(350,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(361,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(362,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(364,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(365,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(231,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(400,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(388,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(411,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(389,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(414,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(390,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(437,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(391,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(448,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(386,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(451,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(392,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(318,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(524,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(475,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(525,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(476,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(526,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(477,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(518,2): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(478,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(524,21): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(473,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(854,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(479,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(856,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(613,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(670,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(614,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(781,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(615,3): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1042,28): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(620,12): warning C4129: “,”: 不可识别的字符转义序列
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1171,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(613,21): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1173,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(944,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1019,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(946,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1106,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(760,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1499,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(871,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1501,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1132,28): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1346,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1261,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1436,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1263,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1700,37): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1109,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1940,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1196,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1942,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1589,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1666,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1591,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1754,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1436,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1841,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1526,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1881,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1790,37): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2144,37): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2031,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2356,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2033,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2358,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1756,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2110,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1843,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2198,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(1972,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2297,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2235,37): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2430,28): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2448,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2571,34): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2450,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2700,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2201,6): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2702,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2289,7): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2545,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2389,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2640,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2522,28): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2780,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2663,34): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2817,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2792,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2819,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2794,7): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2883,35): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2637,9): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2748,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2732,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2752,97): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2872,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2776,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2911,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2913,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2978,35): warning C4267: “初始化”: 从“size_t”转换到“int”可能丢失数据
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2840,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2844,97): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_BOPInfoToMediDatabase.cxx(2868,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
JD_FileInfoToMediDatabase.cpp JD_FileInfoToMediDatabase.cpp
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
@ -149,74 +152,6 @@ D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_FileInfoToMed
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_FileInfoToMediDatabase.cpp(440,12): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_FileInfoToMediDatabase.cpp(440,12): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_FileInfoToMediDatabase.cpp(542,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_FileInfoToMediDatabase.cpp(542,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
JD_GXInfoToMediDatabase.cxx JD_GXInfoToMediDatabase.cxx
<<<<<<< HEAD
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(135,45): warning C4190: “stringToUTF8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(136,39): warning C4190: “GbkToUtf8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(137,39): warning C4190: “Utf8ToGbk”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(78,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(81,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(89,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(99,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(51,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(194,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(228,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(230,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(240,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(241,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(242,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(243,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(486,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(488,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(508,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(509,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(510,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(162,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(166,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(190,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(238,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(244,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(380,10): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(382,10): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(427,8): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
JD_GYInfoToMediDatabase.cxx
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(135,45): warning C4190: “stringToUTF8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(136,39): warning C4190: “GbkToUtf8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(137,39): warning C4190: “Utf8ToGbk”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\VS2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(96,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(99,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(107,4): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(117,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(69,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(212,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(234,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(236,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(246,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(247,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(248,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(249,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(546,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(548,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(568,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(569,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(570,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(180,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(184,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(208,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(244,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(250,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(399,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\source\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(476,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
=======
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(135,45): warning C4190: “stringToUTF8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(135,45): warning C4190: “stringToUTF8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
@ -231,23 +166,22 @@ D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediD
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(99,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(99,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(51,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(51,13): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(194,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(194,6): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(216,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(218,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(228,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(228,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(229,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(230,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(230,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(240,2): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(231,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(241,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(423,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(242,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(425,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(243,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(445,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(486,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(446,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(488,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(447,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(162,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(162,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(166,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(166,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(190,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(190,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(226,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(238,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(232,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(244,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(364,8): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(380,10): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(382,10): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GXInfoToMediDatabase.cxx(427,8): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
JD_GYInfoToMediDatabase.cxx JD_GYInfoToMediDatabase.cxx
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
@ -269,18 +203,15 @@ D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediD
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(247,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(247,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(248,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(248,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(249,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(249,2): warning C4996: 'strcat': This function or variable may be unsafe. Consider using strcat_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(469,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(545,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(471,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(547,5): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(491,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(492,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(493,3): warning C4996: 'strcpy': This function or variable may be unsafe. Consider using strcpy_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(180,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(180,6): warning C4996: 'localtime': This function or variable may be unsafe. Consider using localtime_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(184,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(184,96): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(208,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(208,8): warning C4996: 'stricmp': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _stricmp. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(244,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(244,19): warning C4996: 'getenv': This function or variable may be unsafe. Consider using _dupenv_s instead. To disable deprecation, use _CRT_SECURE_NO_WARNINGS. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(250,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(250,6): warning C4996: 'access': The POSIX name for this item is deprecated. Instead, use the ISO C and C++ conformant name: _access. See online help for details.
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(399,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead. D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(400,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
>>>>>>> 53ac88b65c7ad88d292d4db10f8d177fc790dc8a D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\JD_GYInfoToMediDatabase.cxx(475,11): warning C4996: 'AOM_UIF_ask_value': "AOM_UIF_ask_value" deprecated in Teamcenter "11.1"; Use "AOM_ask_displayable_values" instead.
JD_ItemInfoToMediDatabase.cpp JD_ItemInfoToMediDatabase.cpp
D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>” D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\string_utils.h(134,50): warning C4190: “replace”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明 D:\Installation directory\Microsoft Visual Studio2019\VC\Tools\MSVC\14.29.30133\include\xstring(4871): message : 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
@ -410,10 +341,6 @@ D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\tc_util.cpp(63,1
正在创建库 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.lib 和对象 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.exp 正在创建库 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.lib 和对象 D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.exp
正在生成代码 正在生成代码
Previous IPDB not found, fall back to full compilation. Previous IPDB not found, fall back to full compilation.
<<<<<<< HEAD All 2114 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
All 1780 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
=======
All 2103 functions were compiled because no usable IPDB/IOBJ from previous compilation was found.
>>>>>>> 53ac88b65c7ad88d292d4db10f8d177fc790dc8a
已完成代码的生成 已完成代码的生成
connor_ldy.vcxproj -> D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.dll connor_ldy.vcxproj -> D:\file store\项目代码\精雕\JINGDIAO_connor_jd\x64\Release\connor_jd.dll

Binary file not shown.

Binary file not shown.

@ -3,11 +3,7 @@
// D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\x64\Release\msado15.tlh // D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\x64\Release\msado15.tlh
// //
// C++ source equivalent of type library c:\program files\common files\system\ado\msado15.dll // C++ source equivalent of type library c:\program files\common files\system\ado\msado15.dll
<<<<<<< HEAD // compiler-generated file created 03/17/26 at 18:22:08 - DO NOT EDIT!
// compiler-generated file created 03/03/26 at 17:41:09 - DO NOT EDIT!
=======
// compiler-generated file created 03/06/26 at 15:17:52 - DO NOT EDIT!
>>>>>>> 53ac88b65c7ad88d292d4db10f8d177fc790dc8a
#pragma once #pragma once
#pragma pack(push, 8) #pragma pack(push, 8)

@ -3,11 +3,7 @@
// D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\x64\Release\msado15.tli // D:\file store\项目代码\精雕\JINGDIAO_connor_jd\connor_ldy\x64\Release\msado15.tli
// //
// Wrapper implementations for type library c:\program files\common files\system\ado\msado15.dll // Wrapper implementations for type library c:\program files\common files\system\ado\msado15.dll
<<<<<<< HEAD // compiler-generated file created 03/17/26 at 18:22:08 - DO NOT EDIT!
// compiler-generated file created 03/03/26 at 17:41:09 - DO NOT EDIT!
=======
// compiler-generated file created 03/06/26 at 15:17:52 - DO NOT EDIT!
>>>>>>> 53ac88b65c7ad88d292d4db10f8d177fc790dc8a
#pragma once #pragma once

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save