문자열을 반환하는 함수가있는 세 번째 파트 dll이 있습니다. 함수를 호출하면 예를 들어 "123456"이 반환됩니다. 적어도 그거 같아.하지만 내가 이상한 짓을 할 때. 길이는 길이를 반환하지 않는다. 레이블의 텍스트 속성을 설정하면 "123456"이 표시됩니다.dll이 문자열을 올바르게 반환하지 않을 때 수행 할 작업
내가 DLL에서받은 문자열이있을 때 나는 웹 서비스 기능에 보내
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
webservice.SaveString(mystring)
내가로부터받은 문자열을 발송 webexeption ("protocoll 오류")가있는 웹 서비스 충돌을 DLL. 대신 다음과 같이 보내면 :
rem call dll and get string
dim mystring as string=mydll.getstring()
rem Send it to the webservice
dim FixedString as string = mid(mystring,1,6)
webservice.SaveString(mystring)
그런 다음 제대로 작동합니다. 그게 내가 DLL에서 얻은 문자열이 어딘가에 제대로 종료되지 않았다고 생각하게 만든다. 그리고 나는 vb.net에서 수정하는 방법을 모른다. (나는 DLL을 바꿀 수 없다.) 그리고 나는 미리 문자열이 얼마나 길어야할지 모른다.
dll은 특정 하드웨어가 연결되어있을 때만 사이트에서 작동하므로 개발자 전용 환경에서이 문제를 해결하기 위해 사무실에 앉아있을 수 없습니다. 그래서 고객에게 다시 가기 전에 가능한 해결책을 찾고 싶습니다.
편집 1 : 나는 (I 실제 길이를 잘 모릅니다 때문에) 1부터 100까지 루프 및 <> ""새 변수에 있지만 일부러 모든 문자를 복사하려고 루프를 다만 시도 작업. 그 날이 끝나고 고객 사이트를 떠나야했기 때문에 나는 다른 변종을 시도하지 않았다.
편집 2 :
DLL을 임 VB6에서 만든 이야기. 그 DLL은 C++로 만들어진 다른 DLL과 이야기하고 있습니다 (제 생각 엔).
내 프로그램 < -> VB6 - DLL < -> C++ - DLL < -> 하드웨어
당신은 그 미스터리를 무엇을 의미합니까? 길이는 길이를 반환하지 않습니까? 그것은 정수를 반환합니다 - 어떤 정수가 반환 되었습니까? 0? –
정말 신비 롭습니다. webservice를 호출하기 전에 msgbox (mystring & ":"& mystring.length)를 수행했으며 msgbox에는 "123456 :"이 표시되고 이후에는 아무것도 표시되지 않았습니다. 어느 쪽도 그것에 관한 충돌을 didnt한다. – Stefan