表单签名

main
zouxk 6 years ago
parent 2bfc5f3f22
commit df99813d25

Binary file not shown.

@ -129,7 +129,7 @@
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<PreprocessorDefinitions>WIN32;NDEBUG;_CONSOLE;IPLIB=none;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<AdditionalIncludeDirectories>C:\Java\jdk1.8.0_231\include\win32;C:\Java\jdk1.8.0_231\include;C:\work\include11;C:\work\include_cpp11;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<AdditionalIncludeDirectories>C:\Users\lyf\Documents\tclib\tc12\include;C:\Users\lyf\Documents\tclib\tc12\include_cpp;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<CallingConvention>Cdecl</CallingConvention>
</ClCompile>
<Link>
@ -139,7 +139,7 @@
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<AdditionalDependencies>C:\work\lib11\*.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalDependencies>C:\Users\lyf\Documents\tclib\tc12\lib\*.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreSpecificDefaultLibraries>libuser_exits.ar.lib;%(IgnoreSpecificDefaultLibraries)</IgnoreSpecificDefaultLibraries>
<OutputFile>$(OutDir)\bs.dll</OutputFile>
<AdditionalOptions>/FORCE %(AdditionalOptions)</AdditionalOptions>
@ -153,19 +153,22 @@
<None Include="ReadMe.txt" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="bs_bom_check.cpp" />
<ClCompile Include="bs_bom_save_check.cpp" />
<ClCompile Include="bs_bypass.cpp" />
<ClCompile Include="bs_file_transfer.cpp" />
<ClCompile Include="bs_sap.cpp" />
<ClCompile Include="bs_signoff.cxx" />
<ClCompile Include="bs_sign_cad.cpp" />
<ClCompile Include="bs_wl_check.cpp" />
<ClCompile Include="epm_register_handler.cxx" />
<ClCompile Include="bs_custom_main.cxx" />
<ClCompile Include="jd_clear_field.cpp" />
<ClCompile Include="jd_signoff.cpp" />
<ClCompile Include="util.cpp" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="epm_handler_common.h" />
<ClInclude Include="epm_register_handler.h" />
<ClInclude Include="jd_clear_field.h" />
<ClInclude Include="util.h" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">

@ -49,10 +49,19 @@
<ClCompile Include="bs_sap.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
<ClCompile Include="jd_signoff.cpp">
<ClCompile Include="bs_sign_cad.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
<ClCompile Include="jd_clear_field.cpp">
<ClCompile Include="bs_bom_check.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
<ClCompile Include="bs_wl_check.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
<ClCompile Include="bs_bom_save_check.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
<ClCompile Include="util.cpp">
<Filter>epm-handler</Filter>
</ClCompile>
</ItemGroup>
@ -63,7 +72,7 @@
<ClInclude Include="epm_handler_common.h">
<Filter>epm-handler</Filter>
</ClInclude>
<ClInclude Include="jd_clear_field.h">
<ClInclude Include="util.h">
<Filter>epm-handler</Filter>
</ClInclude>
</ItemGroup>

@ -1,97 +1,4 @@
#include "epm_handler_common.h"
#include <tc\tc_macros.h>
#include <tc\emh.h>
#include <tc\preferences.h>
#include <property\propdesc.h>
#include <epm\epm.h>
#include <epm\epm_toolkit_tc_utils.h>
#include <tccore\item.h>
#include <tccore\grmtype.h>
#include <tccore\grm.h>
#include <tccore\imantype.h>
#include <sa\am.h>
#include <sa\sa.h>
#include <tccore\aom.h>
#include <tccore\aom_prop.h>
#include <property\prop_errors.h>
#include <tccore\workspaceobject.h>
#include <qry\qry.h>
#include <bom\bom_attr.h>
#include <bom\bom.h>
#include <epm\signoff.h>
#include <pom\pom\pom.h>
#include <pom\pom\pom_errors.h>
#include <fclasses\tc_date.h>
#include <epm\cr.h>
#include <cfm\cfm.h>
#include <sa\am.h>
#include "tc/envelope.h"
#include <stdio.h>
#include "ae/dataset.h"
#include <ctype.h>
#include <string.h>
#include <string>
#include <iostream>
#include <iterator>
#include <map>
#include <vector>
#include "ce/ce.h"
#include <time.h>
#include <windows.h>
#include <iostream>
#include <sql.h>
#include <sqlext.h>
#include "string"
#include "sstream"
#include <sa/tcfile.h>
#include <tccore/aom.h>
#include <sa/tcfile_cache.h>
#include "ctime"
#include "tchar.h"
#using "C:/Users/lyf/source/repos/Testdll/bin/Debug/declib.dll"
using namespace std;
using namespace Testdll;
using namespace System;
extern "C" int POM_AM__set_application_bypass(logical bypass);
string ConvertToString(System::String^ str)
{
char* p = (char*)(void*)System::Runtime::InteropServices::Marshal::StringToHGlobalAnsi(str);
return p;
}
System::String ^ convert_to_cstring(const char *p)
{
return System::Runtime::InteropServices::Marshal::PtrToStringAnsi((System::IntPtr)(char *)p);
}
bool isTypeOf(tag_t objtag, const char * type_name) {
tag_t type = NULLTAG;
TCTYPE_ask_object_type(objtag, &type);
tag_t item_type = NULLTAG;
TCTYPE_find_type(type_name, "", &item_type);
bool is_type = false;
if (item_type != NULLTAG) {
logical isok = FALSE;
TCTYPE_is_type_of(type, item_type, &isok);
if (isok) {
is_type = true;
}
}
return is_type;
}
void split(std::string s, const char* delim, std::vector<std::string>* ret)
{
size_t last = 0;
size_t index = s.find(delim, last);
int size = strlen(delim);
while (index != std::string::npos) {
ret->push_back(s.substr(last, index - last));
last = index + size;
index = s.find(delim, last);
}
if (index - last > 0) {
ret->push_back(s.substr(last, index - last));
}
}
#include "util.h"
int bs_sap_material(EPM_action_message_t msg)
{
printf("start sap material\n");
@ -101,12 +8,15 @@ int bs_sap_material(EPM_action_message_t msg)
int pref_cnt;
char **pref_vals;
EPM_ask_root_task(msg.task, &rootTask);
map<int, string> class_map;
EPM_ask_attachments(rootTask, EPM_target_attachment, &att_count, &attachments);
TC_argument_list_t * arguments = msg.arguments;
int arg_cnt = TC_number_of_arguments(arguments), status = 0;
POM_AM__set_application_bypass(true);
map<string, string> paras,rel_map;
map<string, string> prop_map;
vector<string> rel_vec;
for (auto i = 0; i < arg_cnt; i++)
{
@ -114,6 +24,20 @@ int bs_sap_material(EPM_action_message_t msg)
ITK_ask_argument_named_value(TC_next_argument(arguments), &temp_key, &temp_val);
paras[temp_key] = temp_val;
}
string d0 = "D00", d1 = "D0";
for(int i=0;i<67;i++)
{
if(i>8)
{
class_map[1000+i] = d1 + to_string(i + 1);
}else
{
class_map[1000 + i] = d0 + to_string(i + 1);
}
}
PREF_ask_char_values("connor_sap", &pref_cnt, &pref_vals);
split(pref_vals[4], ",", &rel_vec);
for(int i=0;i<rel_vec.size();i++)
@ -125,6 +49,17 @@ int bs_sap_material(EPM_action_message_t msg)
rel_map[temp_vec[0]] = temp_vec[1];
}
}
split(pref_vals[5], ",", &rel_vec);
for (int i = 0; i<rel_vec.size(); i++)
{
vector<string> temp_vec;
split(rel_vec[i], "=", &temp_vec);
if (temp_vec.size() == 2)
{
prop_map[temp_vec[0]] = temp_vec[1];
}
}
GRM_find_relation_type("IMAN_master_form", &relation_type);
printf("create class\n");
Testclass ^test = gcnew Testclass();
@ -132,24 +67,22 @@ int bs_sap_material(EPM_action_message_t msg)
String^ url = convert_to_cstring(pref_vals[0]);
String^ user = convert_to_cstring(pref_vals[2]);
String^ password = convert_to_cstring(pref_vals[3]);
map<string, string> map;
map["MTART"] = "jd2_wllx";
map["MATNR"] = "item_id";
map["MAKTX"] = "jd2_wlms";
map["MEINS"] = "jd2_jldw";
map["MATKL"] = "jd2_wlz";
map["PRDHA"] = "jd2_cppc";
map["EXTWG"] = "jd2_wbwlz";
map["MSTAE"] = "release_status_list";
map["VOLUM"] = "jd2_tj";
map["VOLEH"] = "jd2_tjdw";
map["BISMT"] = "jd2_jwlh";
map["ZEINR"] = "jd2_th";
map["BRGEW"] = "jd2_mz";
map["NTGEW"] = "jd2_jz";
map["GEWEI"] = "jd2_zldw";
map["CLASS"] = "jd2_wllx";
// prop_map["MTART"] = "jd2_wllx";
// prop_map["MATNR"] = "item_id";
// prop_map["MAKTX"] = "jd2_wlms";
// prop_map["MEINS"] = "jd2_dldw";
// prop_map["MATKL"] = "jd2_wlz";
// prop_map["PRDHA"] = "jd2_cpcc";
// prop_map["EXTWG"] = "jd2_wbwlz";
// prop_map["MSTAE"] = "release_status_list";
// prop_map["VOLUM"] = "jd2_tj";
// prop_map["VOLEH"] = "jd2_tjdw";
// prop_map["BISMT"] = "jd2_jwlh";
// prop_map["ZEINR"] = "jd2_th";
// prop_map["BRGEW"] = "jd2_mz";
// prop_map["NTGEW"] = "jd2_jz";
// prop_map["GEWEI"] = "jd2_zldw";
// prop_map["CLASS"] = "jd2_wllx";
vector<string> vec{ "jd2_wllx","item_id","jd2_wlms","jd2_jldw","jd2_wlz","jd2_cppc","jd2_wbwlz","release_status_list","jd2_tj","jd2_tjdw","jd2_jwlh","jd2_th","jd2_mz","jd2_jz","jd2_zldw" };
printf("start111\n");
for (int i = 0; i < att_count; i++)
@ -160,7 +93,7 @@ int bs_sap_material(EPM_action_message_t msg)
tag_t *rels;
GRM_list_secondary_objects_only(attachments[i], relation_type, &rel_cnt, &rels);
System::Collections::Generic::Dictionary<String^, String^> ^dic = gcnew System::Collections::Generic::Dictionary<String^, String^>();
for (auto j = map.begin(); j != map.end(); j++)
for (auto j = prop_map.begin(); j != prop_map.end(); j++)
{
char *val="";
string temp_val;
@ -182,8 +115,26 @@ int bs_sap_material(EPM_action_message_t msg)
AOM_UIF_ask_value(rels[0], j->second.c_str(), &val);
temp_val = val;
}
dic[convert_to_cstring(j->first.c_str())] = convert_to_cstring(temp_val.c_str());
}
tag_t class_obj;
ICS_ask_classification_object(attachments[i], &class_obj);
if (class_obj)
{
char ***vals;
int cnt, *ids,*val_count;
ICS_ico_ask_attributes(class_obj, &cnt, &ids, &val_count, &vals);
for(int j=0;j<cnt;j++)
{
printf("id:%d\n", ids[j]);
if(class_map.find(ids[j])!=class_map.end())
{
if(val_count[j])
dic[convert_to_cstring(class_map[ids[j]].c_str())] = convert_to_cstring(vals[j][0]);
}
}
}
dic["MBRSH"] = "M";
dic["SPART"] = "00";
dic["KLART"] = "001";
@ -279,6 +230,7 @@ int bs_sap_bom(EPM_action_message_t msg)
AOM_ask_value_string(rels[0], "jd2_BOMyt", &stlan);
if (tc_strlen(werks)==0||tc_strlen(stlan)==0)
continue;
get_bom(a_list, top_line, werks, stlan);
string result = ConvertToString(test->send_bom(url, user, password, a_list));
printf("result:%s\n", result.c_str());

@ -39,9 +39,10 @@ extern "C" {
int bs_file_transfer(EPM_action_message_t msg);
int bs_sap_material(EPM_action_message_t msg);
int bs_sap_bom(EPM_action_message_t msg);
int jd_signoff(EPM_action_message_t msg);
int bs_bom_check(EPM_rule_message_t msg);
int bs_wl_check(EPM_rule_message_t msg);
int bs_bom_save_check(METHOD_message_t *msg, va_list args);
int bs_sign_cad(EPM_action_message_t msg);
////将流程信息签入版本属性上去
//int qtmc_sign_ir(EPM_action_message_t msg);

@ -52,16 +52,70 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args)
*decision = ALL_CUSTOMIZATIONS;
printf("register start\n");
ifail = EPM_register_action_handler("bs_file_transfer", "bs_file_transfer",
(EPM_action_handler_t)bs_file_transfer);
if(ifail)
{
printf("register bs_file_transfer failed\n");
}else
{
printf("register bs_file_transfer successfully\n");
}
ifail = EPM_register_action_handler("bs_sap_material", "bs_sap_material",
(EPM_action_handler_t)bs_sap_material);
if (ifail)
{
printf("register bs_sap_material failed\n");
}
else
{
printf("register bs_sap_material successfully\n");
}
ifail = EPM_register_action_handler("bs_sap_bom", "bs_sap_bom",
(EPM_action_handler_t)bs_sap_bom);
ifail = EPM_register_action_handler("jd_signoff", "jd_signoff",
(EPM_action_handler_t)jd_signoff);
if (ifail)
{
printf("register bs_sap_bom failed\n");
}
else
{
printf("register bs_sap_bom successfully\n");
}
ifail = EPM_register_rule_handler("bs_bom_check", "bs_bom_check", (EPM_rule_handler_t)bs_bom_check);
if (ifail)
{
printf("register bs_bom_check failed\n");
}
else
{
printf("register bs_bom_check successfully\n");
}
ifail = EPM_register_rule_handler("bs_wl_check", "bs_wl_check", (EPM_rule_handler_t)bs_wl_check);
if (ifail)
{
printf("register bs_wl_check failed\n");
}
else
{
printf("register bs_wl_check successfully\n");
}
ifail = EPM_register_action_handler("bs_sign_cad", "bs_sign_cad",
(EPM_action_handler_t)bs_sign_cad);
if (ifail)
{
printf("register bs_sign_cad failed\n");
}
else
{
printf("register bs_sign_cad successfully\n");
}
//if(ifail == ITK_ok)
//{
// fprintf(stdout,"Registering action handler qtmc-sign-ir completed!\n");
@ -78,164 +132,25 @@ extern DLLAPI int CUST_init_module(int *decision, va_list args)
////register service method
extern DLLAPI int USERSERVICE_custom_register_methods()
{
////2.7 SP-CUS-007 <20><>DBOM<4F><4D><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>EBOM
//numberOfArguments = 1;
//functionPtr = Q7_ebom_to_pbom;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE;
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
//returnValueType = USERARG_STRING_TYPE;
//ITKCALL(status = USERSERVICE_register_method("Q7_ebom_to_pbom", functionPtr, numberOfArguments,
// argumentList, returnValueType ));
//MEM_free(argumentList);
//if(status == ITK_ok)
//{
// fprintf( stdout, "\n Registering Q7_ebom_to_pbom finished\n" );
//}
//else
//{
// fprintf( stdout, "\n Registering Q7_ebom_to_pbom failed %d\n" , status );
//}
////QTM_ebom_to_pbom
//numberOfArguments = 1;
//functionPtr = QTM_ebom_to_pbom;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE;
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
//returnValueType = USERARG_STRING_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTM_ebom_to_pbom", functionPtr, numberOfArguments,
// argumentList, returnValueType ));
//MEM_free(argumentList);
//if(status == ITK_ok)
//{
// fprintf( stdout, "\n Registering QTM_ebom_to_pbom finished\n" );
//}
//else
//{
// fprintf( stdout, "\n Registering QTM_ebom_to_pbom failed %d\n" , status );
//}
////QTM_ebom_to_mbom
//numberOfArguments = 1;
//functionPtr = QTM_ebom_to_mbom;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE;
////argumentList[1] = USERARG_STRING_TYPE + USERARG_ARRAY_TYPE;
//returnValueType = USERARG_STRING_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTM_ebom_to_mbom", functionPtr, numberOfArguments,
// argumentList, returnValueType ));
//MEM_free(argumentList);
//if(status == ITK_ok)
//{
// fprintf( stdout, "\n Registering QTM_ebom_to_mbom finished\n" );
//}
//else
//{
// fprintf( stdout, "\n Registering QTM_ebom_to_mbom failed %d\n" , status );
//}
////2.6 SP-CUS-006<30><36><EFBFBD>е<D0B5><C2B6><EFBFBD>excel<65><6C>Ϣ<EFBFBD><CFA2><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//numberOfArguments = 3;
//functionPtr = qtmc_update_revision_prop;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE+USERARG_ARRAY_TYPE;
//argumentList[1] = USERARG_TAG_TYPE;
//argumentList[2] = USERARG_STRING_TYPE;
//returnValueType = USERARG_VOID_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC_update_revision_prop",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC_update_revision_prop successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC_update_revision_prop failed %d\n",status);
//}
//
////SP-CUS-017SolidWorksģ<73><C4A3><EFBFBD><EFBFBD><EFBFBD>浽TC
//numberOfArguments = 7;
//functionPtr = qtmc_import_solidworks_to_tc;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_STRING_TYPE;
//argumentList[1] = USERARG_STRING_TYPE;
//argumentList[2] = USERARG_STRING_TYPE;
//argumentList[3] = USERARG_TAG_TYPE;
//argumentList[4] = USERARG_LOGICAL_TYPE;
//argumentList[5] = USERARG_LOGICAL_TYPE;
//argumentList[6] = USERARG_LOGICAL_TYPE;
//returnValueType = USERARG_LOGICAL_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC_import_solidworks",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC_import_solidworks successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC_import_solidworks failed %d\n",status);
//}
////3.8 SP-CUS-020<32><30><EFBFBD><EFBFBD>ϵ<EFBFBD>м<EFBFBD><D0BC><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//numberOfArguments = 3;
//functionPtr = qtmc_update_series_parts;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE;
//argumentList[1] = USERARG_STRING_TYPE;
//argumentList[2] = USERARG_STRING_TYPE;
//returnValueType = USERARG_TAG_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC_update_series_parts",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC_update_series_parts successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC_update_series_parts failed %d\n",status);
//}
//numberOfArguments = 1;
//functionPtr = qtmc_by_pass;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_LOGICAL_TYPE;
//returnValueType = USERARG_VOID_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC-bypass",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC-bypass successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC-bypass failed %d\n",status);
//}
//numberOfArguments = 3;
//functionPtr = qtmc_qry_service;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_STRING_TYPE;
//argumentList[1] = USERARG_STRING_TYPE+USERARG_ARRAY_TYPE;
//argumentList[2] = USERARG_STRING_TYPE+USERARG_ARRAY_TYPE;
//returnValueType = USERARG_TAG_TYPE+USERARG_ARRAY_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC_Search",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC_Search successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC_Search failed %d\n",status);
//}
//
////7.3 <09><><EFBFBD><EFBFBD>HBOM<4F><4D><EFBFBD>ݵĵ<DDB5><C4B5><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
//numberOfArguments = 4;
//functionPtr = qtmc_update_hbom_bomline_prop;
//argumentList = (int*)MEM_alloc(numberOfArguments * sizeof(int) );
//argumentList[0] = USERARG_TAG_TYPE;
//argumentList[1] = USERARG_TAG_TYPE;
//argumentList[2] = USERARG_STRING_TYPE;
//argumentList[3] = USERARG_STRING_TYPE;
//returnValueType = USERARG_VOID_TYPE;
//ITKCALL(status = USERSERVICE_register_method("QTMC_update_bomline",functionPtr,numberOfArguments,argumentList,returnValueType));
//if(status == ITK_ok)
//{
// fprintf(stdout,"Registering user service QTMC_update_bomline successful !\n");
//}else{
// fprintf(stdout,"Registering user service QTMC_update_bomline failed %d\n",status);
//}
int status = 0;
METHOD_id_t mth_tag;
METHOD_find_method("BOMWindow", "BOMWindow_save", &mth_tag);
printf("register service\n");
if (mth_tag.id)
{
printf("register bomwindow_save\n");
status=METHOD_add_action(mth_tag, METHOD_pre_action_type, (METHOD_function_t)bs_bom_save_check, NULL);
if(status==ITK_ok)
{
printf("register bomwindow_save success\n");
}else
{
printf("register bomwindow_save failed\n");
}
}
return 0;
}

@ -30,7 +30,6 @@
#include <sa/tcfile_cache.h>
#include <ics\ics2.h>
#include "sstream"
#include "libxl.h"
#include "atlstr.h"
#include <tc\tc_macros.h>
@ -96,6 +95,8 @@
#include <string>
#define MAX_PATH_LEN 256
#define GUID_LEN 64
#ifdef WIN32
#define ACCESS(fileName,accessMode) _access(fileName,accessMode)
#define MKDIR(path) _mkdir(path)
@ -103,9 +104,12 @@
#define ACCESS(fileName,accessMode) access(fileName,accessMode)
#define MKDIR(path) mkdir(path,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)
#endif
#define LOCALJARPATH "D:\\Siemens\\Teamcenter11\\bin\\tc_extra_jar\\"
#define REMOTEJARPATH "D:\\app\\Siemens\\Teamcenter12\\bin\\tc_extra_jar\\"
//#include <iostream>
using namespace std;
using namespace libxl;
#ifdef __cplusplus
extern "C" int POM_AM__set_application_bypass(logical bypass);
extern "C" {
@ -232,8 +236,7 @@ extern "C" {
std::cout << "Added " << urlPath << " to the classpath." << std::endl;
}
int JD_Revise_clear(METHOD_message_t* msg, va_list args) {
int JD_clear(METHOD_message_t* msg, va_list args, tag_t new_rev) {
printf("升版执行\n");
//获取数据集
char *temp_path, *attach_type;
@ -257,20 +260,21 @@ extern "C" {
printf("dir:%s\n", dir.str().c_str());
//获取时间
//time_t t;
//time(&t);
//tm* time = localtime(&t);
stringstream date;
//date << time->tm_year + 1900 << "-";
//date << time->tm_mon + 1 << "-";
//date << time->tm_mday << "-";
//date << time->tm_hour << "-";
//date << time->tm_min << "-";
//date << time->tm_sec;
date << "2";
printf("datetime:%s\n",date.str().c_str());
//获取guid
char buffer[GUID_LEN] = { 0 };
GUID guid;
if (CoCreateGuid(&guid)) {
fprintf(stderr, "create guid error\n");
return -1;
}
_snprintf(buffer, sizeof(buffer),
"%08X-%04X-%04x-%02X%02X-%02X%02X%02X%02X%02X%02X",
guid.Data1, guid.Data2, guid.Data3,
guid.Data4[0], guid.Data4[1], guid.Data4[2],
guid.Data4[3], guid.Data4[4], guid.Data4[5],
guid.Data4[6], guid.Data4[7]);
printf("guid: %s\n", buffer);
POM_AM__set_application_bypass(true);
@ -278,7 +282,7 @@ extern "C" {
wstringstream wss;
wss << getenv("JRE_HOME") << "\\bin\\server\\jvm.dll";
printf("wxs:%s\n",wss.str().c_str());
printf("wxs:%s\n", wss.str().c_str());
JavaVMInitArgs vmArgs;
const int OPTION_COUNT = 1;
@ -321,135 +325,165 @@ extern "C" {
}
printf("after load jvm\n");
add_path(env, "D:\\Siemens\\Teamcenter11\\bin\\tc_extra_jar\\sign2fileRunnable.jar");
//add_path(env, "D:\\app\\Siemens\\Teamcenter12\\bin\\tc_extra_jar\\sign2fileRunnable.jar");
stringstream s;
if (ACCESS(LOCALJARPATH, 0) != 0) {
s << REMOTEJARPATH;
s << "sign2fileRunnable.jar";
add_path(env, s.str().c_str());
} else {
s << LOCALJARPATH;
s << "sign2fileRunnable.jar";
add_path(env, s.str().c_str());
}
printf("add path\n");
jclass class_Test;
int file_type = -1;
int ifail = ITK_ok, objects_count;
tag_t new_rev = va_arg(args, tag_t), *objects;
char* operation = va_arg(args, char*);
tag_t *objects;
ITKCALL(AOM_ask_value_tags(new_rev, "IMAN_master_form_rev", &objects_count, &objects));
//表单签名
for (auto iii = 0; iii < objects_count; iii++) {
AOM_lock(objects[iii]);
AOM_set_value_string(objects[iii], "jd2_bz", "");
AOM_set_value_string(objects[iii], "jd2_bzrq", "");
AOM_set_value_string(objects[iii], "jd2_jd", "");
AOM_set_value_string(objects[iii], "jd2_jdrq", "");
AOM_set_value_string(objects[iii], "jd2_sh", "");
AOM_set_value_string(objects[iii], "jd2_shrq", "");
AOM_set_value_string(objects[iii], "jd2_hq", "");
AOM_set_value_string(objects[iii], "jd2_hqrq", "");
AOM_set_value_string(objects[iii], "jd2_pz", "");
AOM_set_value_string(objects[iii], "jd2_pzrq", "");
ITKCALL(AOM_save(objects[iii]));
AOM_unlock(objects[iii]);
}
MEM_free(objects);
printf("startSign\n");
ITKCALL(AOM_ask_value_tags(new_rev, "IMAN_specification", &n_attachs, &dataset));
for (int i = 0;i < n_attachs;i++) {
stringstream ss;
ss << dir.str().c_str();
printf(ss.str().c_str());
ITKCALL(TCTYPE_ask_object_type(dataset[i], &type_tag));
if (type_tag == wordx_tag || type_tag == word_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "word", &ae_ref, &word_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(word_ref, "file_name", &file_name));
ss << buffer;
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "word", ss.str().c_str()));
file_type = 0;
} else if (type_tag == excel_tag || type_tag == excelx_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "excel", &ae_ref, &excel_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(excel_ref, "file_name", &file_name));
ss << buffer;
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "excel", ss.str().c_str()));
file_type = 1;
}
if (strcmp(operation, "Revise") == 0 || strcmp(operation, "SaveAs") == 0) {
//todo怎么判断需要操作的类型?
if (isTypeOf(new_rev, "ItemRevision")) {
ITKCALL(AOM_ask_value_tags(new_rev, "IMAN_master_form_rev", &objects_count, &objects));
//表单签名
for (auto iii = 0; iii < objects_count; iii++) {
AOM_lock(objects[iii]);
AOM_set_value_string(objects[iii], "jd2_bz", "");
AOM_set_value_string(objects[iii], "jd2_bzrq", "");
AOM_set_value_string(objects[iii], "jd2_jd", "");
AOM_set_value_string(objects[iii], "jd2_jdrq", "");
AOM_set_value_string(objects[iii], "jd2_sh", "");
AOM_set_value_string(objects[iii], "jd2_shrq", "");
AOM_set_value_string(objects[iii], "jd2_hq", "");
AOM_set_value_string(objects[iii], "jd2_hqrq", "");
AOM_set_value_string(objects[iii], "jd2_pz", "");
AOM_set_value_string(objects[iii], "jd2_pzrq", "");
ITKCALL(AOM_save(objects[iii]));
AOM_unlock(objects[iii]);
printf("file_type:%d\n", file_type);
if (file_type == 0) {
class_Test = env->FindClass("sign2file/SignToWord");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], word_ref, ss.str().c_str(), "word");
}
MEM_free(objects);
printf("startSign\n");
ITKCALL(AOM_ask_value_tags(new_rev, "IMAN_specification", &n_attachs, &dataset));
for (int i = 0;i < n_attachs;i++) {
stringstream ss;
ss << dir.str().c_str();
printf(ss.str().c_str());
ITKCALL(TCTYPE_ask_object_type(dataset[i], &type_tag));
if (type_tag == wordx_tag || type_tag == word_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "word", &ae_ref, &word_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(word_ref, "file_name", &file_name));
ss << date.str().c_str();
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "word", ss.str().c_str()));
file_type = 0;
} else if (type_tag == excel_tag || type_tag == excelx_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "excel", &ae_ref, &excel_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(excel_ref, "file_name", &file_name));
ss << date.str().c_str();
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "excel", ss.str().c_str()));
file_type = 1;
}
} else if (file_type == 1) {
class_Test = env->FindClass("sign2file/SignToExcel");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], excel_ref, ss.str().c_str(), "excel");
}
}
file_type = -1;
}
MEM_free(dataset);
AOM_ask_value_tags(new_rev, "TC_Attaches", &n_attachs, &dataset);
for (int i = 0;i < n_attachs;i++) {
stringstream ss;
ss << dir.str().c_str();
ITKCALL(TCTYPE_ask_object_type(dataset[i], &type_tag));
if (type_tag == wordx_tag || type_tag == word_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "word", &ae_ref, &word_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(word_ref, "file_name", &file_name));
ss << buffer;
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "word", ss.str().c_str()));
file_type = 0;
} else if (type_tag == excel_tag || type_tag == excelx_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "excel", &ae_ref, &excel_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(excel_ref, "file_name", &file_name));
ss << buffer;
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "excel", ss.str().c_str()));
file_type = 1;
}
printf("file_type:%d\n", file_type);
if (file_type == 0) {
class_Test = env->FindClass("sign2file/SignToWord");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], word_ref, ss.str().c_str(), "word");
}
} else if (file_type == 1) {
class_Test = env->FindClass("sign2file/SignToExcel");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], excel_ref, ss.str().c_str(), "excel");
}
}
file_type = -1;
printf("file_type:%d\n", file_type);
if (file_type == 0) {
class_Test = env->FindClass("sign2file/SignToWord");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], word_ref, ss.str().c_str(), "word");
}
MEM_free(dataset);
AOM_ask_value_tags(new_rev, "TC_Attaches", &n_attachs, &dataset);
for (int i = 0;i < n_attachs;i++) {
stringstream ss;
ss << dir.str().c_str();
ITKCALL(TCTYPE_ask_object_type(dataset[i], &type_tag));
if (type_tag == wordx_tag || type_tag == word_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "word", &ae_ref, &word_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(word_ref, "file_name", &file_name));
ss << date.str().c_str();
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "word", ss.str().c_str()));
file_type = 0;
} else if (type_tag == excel_tag || type_tag == excelx_tag) {
ITKCALL(AE_ask_dataset_named_ref2(dataset[i], "excel", &ae_ref, &excel_ref));
char *file_name;
ITKCALL(AOM_UIF_ask_value(excel_ref, "file_name", &file_name));
ss << date.str().c_str();
ss << "_";
ss << file_name;
printf("path:%s\n", ss.str().c_str());
ITKCALL(AE_export_named_ref(dataset[i], "excel", ss.str().c_str()));
file_type = 1;
}
} else if (file_type == 1) {
class_Test = env->FindClass("sign2file/SignToExcel");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], excel_ref, ss.str().c_str(), "excel");
}
}
file_type = -1;
}
MEM_free(dataset);
printf("endSign\n");
FreeLibrary(hModule);
POM_AM__set_application_bypass(false);
return ITK_ok;
}
int JD_Revise_clear(METHOD_message_t* msg, va_list args) {
tag_t new_rev = va_arg(args, tag_t);
char *operation = va_arg(args, char*), **pref_values, *type;
int ifail = ITK_ok, pref_count;
AOM_ask_value_string(new_rev, "object_type", &type);
printf("file_type:%d\n", file_type);
if (file_type == 0) {
class_Test = env->FindClass("sign2file/SignToWord");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], word_ref, ss.str().c_str(), "word");
}
} else if (file_type == 1) {
class_Test = env->FindClass("sign2file/SignToExcel");
int res = sign(env, class_Test, ss.str().c_str(), "", 54);
if (res) {
replace_dataset_named_reference(dataset[i], excel_ref, ss.str().c_str(), "excel");
}
if (strcmp(operation, "Revise") == 0 || strcmp(operation, "SaveAs") == 0) {
if (isTypeOf(new_rev, "ItemRevision")) {
//获取首选项
PREF_ask_char_values("jd_revise_clear_revisions",&pref_count,&pref_values);
for (int i = 0;i < pref_count;i++) {
if (strcmp(pref_values[i],type)==0) {
JD_clear(msg, args, new_rev);
break;
}
file_type = -1;
}
MEM_free(dataset);
printf("endSign\n");
}
}
FreeLibrary(hModule);
POM_AM__set_application_bypass(false);
return ifail;
}
@ -457,13 +491,13 @@ extern "C" {
int status = ITK_ok;
char *err_string, *err_function;
int err_line = -1;
printf("JD_Revise_clear函数\n");
printf("JD_Revise_clear函数开始注册\n");
METHOD_id_t mth_tag;
ITKCALL(status = METHOD_find_method("ItemRevision", ITEM_deep_copy_msg, &mth_tag));
if (mth_tag.id != 0) {
ITKCALL(METHOD_add_action(mth_tag, METHOD_post_action_type, JD_Revise_clear, NULL));
printf("JD_Revise_clear注册成功");
printf("JD_Revise_clear注册成功\n");
}
return status;
}

@ -70,6 +70,9 @@
#define MKDIR(path) mkdir(path,S_IRWXU | S_IRWXG | S_IROTH | S_IXOTH)
#endif
#define LOCALJARPATH "D:\\Siemens\\Teamcenter11\\bin\\tc_extra_jar\\"
#define REMOTEJARPATH "D:\\app\\Siemens\\Teamcenter12\\bin\\tc_extra_jar\\"
using namespace std;
extern "C" int POM_AM__set_application_bypass(logical bypass);
@ -198,7 +201,7 @@ void add_path(JNIEnv* env, const std::string& path)
//吉德表单签名
int jd_signoff(EPM_action_message_t msg) {
const char bz = '1', jd = '2', sh = '3', hq = '4', pz = '5', bz_back = '0';
const char bz = '1', jd = '2', sh = '3', hq = '4', pz = '5', bz_back = '0', clear='6';
int ifail = ITK_ok, att_count, objects_count, step;
tag_t rootTask, *attachments, user_tag, *objects;
@ -346,8 +349,18 @@ int jd_signoff(EPM_action_message_t msg) {
}
printf("after load jvm\n");
add_path(env, "D:\\Siemens\\Teamcenter11\\bin\\tc_extra_jar\\sign2fileRunnable.jar");
//add_path(env, "D:\\app\\Siemens\\Teamcenter12\\bin\\tc_extra_jar\\sign2fileRunnable.jar");
stringstream s;
if (ACCESS(LOCALJARPATH, 0) != 0) {
s << REMOTEJARPATH;
s << "sign2fileRunnable.jar";
add_path(env, s.str().c_str());
} else {
s << LOCALJARPATH;
s << "sign2fileRunnable.jar";
add_path(env, s.str().c_str());
}
printf("add path\n");
jclass class_Test;
int file_type = -1;
@ -367,23 +380,32 @@ int jd_signoff(EPM_action_message_t msg) {
case bz:
AOM_set_value_string(objects[iii], "jd2_bz", user_name);
AOM_set_value_string(objects[iii], "jd2_bzrq", date.str().c_str());
printf("bz signoff\n");
break;
case jd:
AOM_set_value_string(objects[iii], "jd2_jd", user_name);
AOM_set_value_string(objects[iii], "jd2_jdrq", date.str().c_str());
printf("jd signoff\n");
break;
case sh:
AOM_set_value_string(objects[iii], "jd2_sh", user_name);
AOM_set_value_string(objects[iii], "jd2_shrq", date.str().c_str());
printf("sh signoff\n");
break;
case hq:
AOM_set_value_string(objects[iii], "jd2_hq", user_name);
AOM_set_value_string(objects[iii], "jd2_hqrq", date.str().c_str());
printf("hq signoff\n");
break;
case pz:
AOM_set_value_string(objects[iii], "jd2_pz", user_name);
AOM_set_value_string(objects[iii], "jd2_pzrq", date.str().c_str());
printf("pz signoff\n");
break;
case clear:
AOM_set_value_string(objects[iii], "jd2_bz", "");
AOM_set_value_string(objects[iii], "jd2_bzrq", "");
printf("clear signoff\n");
case bz_back:
AOM_set_value_string(objects[iii], "jd2_jd", "");
AOM_set_value_string(objects[iii], "jd2_jdrq", "");
@ -393,6 +415,7 @@ int jd_signoff(EPM_action_message_t msg) {
AOM_set_value_string(objects[iii], "jd2_hqrq", "");
AOM_set_value_string(objects[iii], "jd2_pz", "");
AOM_set_value_string(objects[iii], "jd2_pzrq", "");
printf("bz_back signoff\n");
break;
}
ITKCALL(AOM_save(objects[iii]));

@ -1,29 +1,17 @@
 jd_clear_field.cpp
C:\work\include11\pom/pom/pom.h(816): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
C:\work\include11\pom/pom/pom.h(5419): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
C:\work\include11\qry/qry.h(591): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
C:\work\include11\qry/qry.h(591): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
jd_clear_field.cpp(115): warning C4267: “初始化”: 从“size_t”转换到“uint32_t”可能丢失数据
jd_clear_field.cpp(177): warning C4190: “GBKToUTF8”有指定的 C 链接,但返回了与 C 不兼容的 UDT“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\include\xstring(2633): note: 参见“std::basic_string<char,std::char_traits<char>,std::allocator<char>>”的声明
jd_clear_field.cpp(248): 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.
 jd_signoff.cpp
C:\work\include12_2\pom/pom/pom.h(806): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
C:\work\include12_2\pom/pom/pom.h(5417): warning C4819: 该文件包含不能在当前代码页(936)中表示的字符。请将该文件保存为 Unicode 格式以防止数据丢失
jd_signoff.cpp(80): warning C4267: “初始化”: 从“size_t”转换到“uint32_t”可能丢失数据
jd_signoff.cpp(213): 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.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\time.h(505): note: 参见“localtime”的声明
jd_signoff.cpp(233): 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.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdlib.h(1183): note: 参见“getenv”的声明
jd_clear_field.cpp(279): 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.
jd_signoff.cpp(309): 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.
C:\Program Files (x86)\Windows Kits\10\Include\10.0.10240.0\ucrt\stdlib.h(1183): note: 参见“getenv”的声明
jd_clear_field.cpp(281): warning C4477: “printf”: 格式字符串“%s”需要类型“char *”的参数,但可变参数 1 拥有了类型“const wchar_t *”
jd_clear_field.cpp(281): note: 请考虑在格式字符串中使用“%ls”
jd_clear_field.cpp(281): note: 请考虑在格式字符串中使用“%lls”
jd_clear_field.cpp(281): note: 请考虑在格式字符串中使用“%Ls”
jd_clear_field.cpp(281): note: 请考虑在格式字符串中使用“%ws”
jd_clear_field.cpp(242): warning C4101: “rev_attachments”: 未引用的局部变量
jd_clear_field.cpp(241): warning C4101: “ref_obj”: 未引用的局部变量
jd_clear_field.cpp(239): warning C4101: “attach_type”: 未引用的局部变量
jd_clear_field.cpp(458): warning C4101: “err_function”: 未引用的局部变量
jd_clear_field.cpp(458): warning C4101: “err_string”: 未引用的局部变量
c:\work\vs_workspace\jditk\hezon_itk\jd_clear_field.cpp(332): warning C4793: “JD_Revise_clear”: 编译为本机的函数:
托管代码中发现一个不受支持的内部函数
c:\work\vs_workspace\jditk\hezon_itk\jd_clear_field.cpp(333): warning C4793: “JD_Revise_clear”: 编译为本机的函数:
托管代码中发现一个不受支持的内部函数
jd_signoff.cpp(209): warning C4101: “verdict”: 未引用的局部变量
jd_signoff.cpp(227): warning C4101: “rev_attachments”: 未引用的局部变量
jd_signoff.cpp(226): warning C4101: “ref_obj”: 未引用的局部变量
jd_signoff.cpp(224): warning C4101: “attach_type”: 未引用的局部变量
c:\java\jdk1.8.0_231\include\jni.h(1442): warning C4793: “JNIEnv_::CallStaticIntMethod”: 编译为本机的函数:
/clr 下不支持 varargs
c:\java\jdk1.8.0_231\include\jni.h(1445): warning C4793: “JNIEnv_::CallStaticIntMethod”: 编译为本机的函数:
@ -52,7 +40,7 @@ C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.target
C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\V140\Microsoft.CppBuild.targets(1191,5): warning MSB8012: TargetName(HEZON_ITK) does not match the Linker's OutputFile property value (bs). This may cause your project to build incorrectly. To correct this, please make sure that $(OutDir), $(TargetName) and $(TargetExt) property values match the value specified in %(Link.OutputFile).
jd_signoff.obj : warning LNK4006: "bool __cdecl isTypeOf(unsigned int,char const *)" (?isTypeOf@@$$FYA_NIPEBD@Z) 已在 bs_sap.obj 中定义;已忽略第二个定义
jd_signoff.obj : warning LNK4006: "bool __cdecl isTypeOf(unsigned int,char const *)" (?isTypeOf@@YA_NIPEBD@Z) 已在 bs_sap.obj 中定义;已忽略第二个定义
LINK : warning LNK4103: 导入删除的析构函数“[thunk]:public: virtual void * __ptr64 __cdecl std::basic_stringstream<char,struct std::char_traits<char>,class std::allocator<char> >::`vector deleting destructor'`vtordisp{4294967292,0}' (unsigned int) __ptr64”映像可能不能正确运行
MSVCRT.lib(default_local_stdio_options.obj) : warning LNK4006: __local_stdio_printf_options 已在 libassy_jt.lib(libassy_jt.dll) 中定义;已忽略第二个定义
正在创建库 C:\work\vs_workspace\jditk\x64\Release\\bs.lib 和对象 C:\work\vs_workspace\jditk\x64\Release\\bs.exp
jd_signoff.obj : warning LNK4248: 无法解析 typeref 标记(01000016)(为“_jmethodID”);映像可能无法运行
jd_clear_field.obj : warning LNK4248: 无法解析 typeref 标记(01000017)(为“_jmethodID”);映像可能无法运行

Binary file not shown.

Binary file not shown.

Binary file not shown.
Loading…
Cancel
Save