This is topic Передача строк in forum TRACE MODE 6 бесплатная Базовая версия / TRACE MODE 6 free Base version at Форум TRACE MODE: техническая поддержка.
У меня возникла проблема с передачей строк из Trace Mode через подключаемую библиотеку - передаётся только первый символ. Как решить эту проблему?
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
А каким образом пытаетесь передать строку? Пример привести кода библиотеки и описание ее в ТМ6 можете?
Posted by andreitopaz (Участник № / Member № 1691) on :
Вот пример: В MS Visual Studio ------------------------------------------------ extern "C" __declspec(dllexport) void __cdecl add(__int8 type,__int8 num, LPSTR name) { static char ch[3]; static char str[100]; static __int32 nb; HANDLE fl=CreateFileA("C:\\KCO-2\\fromscad.csv",GENERIC_WRITE,FILE_SHARE_WRITE,0,CREATE_ALWAYS,0,0); if(fl!=INVALID_HANDLE_VALUE){ if(SetFilePointer(fl,0,NULL,FILE_END)!=INVALID_SET_FILE_POINTER) { str[0]='\0'; switch(type) { case 1:strcat(str,"OAR");break; } //strcat(str,itoa(type,ch,10)); strcat(str,";"); strcat(str,itoa(num,ch,10)); strcat(str,";"); strcat(str,name); strcat(str,"\n"); WriteFile(fl,&str,sizeof(str),(LPDWORD)&nb,NULL); } CloseHandle(fl); } }
В Trace Mode на ST: ---------------------------------------------- PROGRAM VAR_INPUT OAR1_Active : BOOL; END_VAR VAR_INPUT OAR1_Name : STRING; END_VAR
if OAR1_Active then write(1,1,OAR1_Name); end_if;
END_PROGRAM
Posted by andreitopaz (Участник № / Member № 1691) on :
Передача идёт через переменную - OAR1_Name
Posted by AdAstra Technical Support (Участник № / Member № 4) on :
В TM6 используется UNICODE.
Posted by Student (Участник № / Member № 1948) on :