login about faq

Using the ActiveX ChilkatAx-9.5.0-win32.dll version The dll was implemented in both a VB6 and VB.net test app. Each app is used to send commands to an Audio/Video (AV) device. The commands being sent, from both apps, are identical. Please note that the two apps are not run at the same time. The commands are sent via the SendString method with the StringChartset property set to utf-8. When the VB.net test app is used the expected acknowledgement, from the device, is received. However, the VB6 app does not get any acknowledgement back. I set up an emulation app to receive a command and echo the command back. Both app worked as expected. The sent commands were echoed back in both cases. This showed me that the VB6 app is capable of receiving acknowledgement messages. Any suggestions? Thanks, RBO

asked Aug 12 '16 at 19:30

RBO's gravatar image


The architecture of Chilkat is that there is a single C++ native implementation that is used across all operating systems, and by all programming languages. For every programming language (.NET, C++, Java, ActiveX/COM, Objective-C, etc.) there is a thin layer of generated code (generated from an internal API specification) that marshals input args to the inner C++ call, and marshals return values back.

Therefore, given that both the ActiveX and .NET DLLs use the same implementation, the only difference can be the marshaling of args and return values. If a problem exists in the generated thin-layer, then it would be a problem common across the entire API (for example, if byte arrays are not passed correctly in .NET calls) and this would be spotted very quickly by hundreds if not thousands of users..


answered Aug 18 '16 at 08:53

chilkat's gravatar image

chilkat ♦♦

edited Aug 18 '16 at 08:54

To clarify: I am not using the .net DLL implementation of the ChilKat socket. I am using the ActiveX/COM object in both the VB6 app and .net test app. While the AV device I am controlling responds to the .net app it doesn't respond to the VB6 app.

Thanks for your help.


(Aug 18 '16 at 13:48) RBO

Are you sure you're sending a UTF-8 byte array in VB6? If you are sending a string, then it is going to be 2-byte per character Unicode AFAIK.


answered Aug 18 '16 at 15:47

jpbro's gravatar image

jpbro ♦

edited Aug 18 '16 at 15:48

I am using the SendString method in both cases. The StringChartSet property is set to utf-8. This instruction is from a previous forum question. The AV device we are trying to control requires utf-8 encoding. RBO

(Aug 19 '16 at 01:15) RBO

In VB6 all strings are essentially UTF-16, so I think that's where your problem might be. You will need to convert your strings to a UTF-8 byte array, and send the byte array to the device using the SendBytes method.

Check out the Converting to UTF-8 section on this page for an example: http://www.di-mgt.com.au/howto-convert-vba-unicode-to-utf8.html

(Aug 19 '16 at 06:39) jpbro ♦
Your answer
toggle preview

Follow this question

By Email:

Once you sign in you will be able to subscribe for any updates here



Answers and Comments

Markdown Basics

  • *italic* or __italic__
  • **bold** or __bold__
  • link:[text](http://url.com/ "title")
  • image?![alt text](/path/img.jpg "title")
  • numbered list: 1. Foo 2. Bar
  • to add a line break simply add two spaces to where you would like the new line to be.
  • basic HTML tags are also supported



Asked: Aug 12 '16 at 19:30

Seen: 2,271 times

Last updated: Aug 19 '16 at 06:39

powered by OSQA