Linking “C” Programs with the Chilkat C/C++ Libs

The Chilkat C/C++ libs are (internally) written in C++.  Therefore, when linking a “C” program with the Chilkat libs, the C++ runtime libs must be included.  This is true regardless of the operating system, whether it be Windows, MAC OS X, IOS, Linux, etc.    Different build environments will have different ways of accomplishing the task.  For example, with XCode (on […]

Chilkat Customer App in Apple App Store

Question: Will using Chilkat (for IOS) prevent my app from being accepted into the Apple App Store? Answer: Using the Chilkat libs for IOS does not prevent it from being accepted in the Apple App Store.  For reference, the following app uses Chilkat and was accepted into the app store on 14-March-2012. http://www.bouncemyx.com/

SFTP vs. FTPS

Clarification on the acronyms “SFTP” and “FTPS” “SFTP” is the Secure File Transfer Protocol over SSH.  It is a protocol unrelated to the FTP protocol. (It is actually a subsystem of SSH.)  The Chilkat SSH / SFTP component is used for “SFTP”.  SFTP is achieved by connecting to an SSH server at port 22. On the other hand, the Chilkat […]

Unzipping zips with Unicode Filenames

Question: I see your example code includes the ability to create a zip with Unicode filenames. Does your product support unzipping files with unicode filenames, such as Chinese? Answer: Yes, it can unzip files w/ Unicode names — assuming the .zip was correctly created.  Your first test should be to unzip without trying anything differently.  Check to see if the […]

Debugging SshTunnel

The Chilkat SshTunnel object/class (may be “CkSshTunnel” in some programming languages) provides a number of properties to help in debugging (i.e. understanding) what is happening in the background thread: AcceptThreadSessionLogPath:  May be set to the path of a log file that the SshTunnel will create and log activity regarding connections accepted.   This will allow you to see incoming connections that […]

Delphi: how to call ActiveX Functions that return an OleVariant containing a Byte Array

Some Chilkat ActiveX functions return binary data as a Variant containing a byte array.  If the Chilkat function fails, it returns an OleVariant containing an empty byte array. The following code snippet is incorrect and will cause Delphi to raise an EVariantBadIndexError exception if an empty OleVariant is returned. // This is incorrect: mybuffer : array of byte; // … […]

IOS / Mac OS X Link Problems involving symbols such as __ZTVN10__cxxabiv121__vmi_class_type_infoE

If linking produces undefined symbols involving the following: __ZTVN10__cxxabiv121__vmi_class_type_infoE __Znwm __ZdlPv ___gxx_personality_sj0 ___cxa_begin_catch __ZTVN10__cxxabiv120__si_class_type_infoE ___cxa_end_catch __ZdaPv __ZTVN10__cxxabiv117__class_type_infoE etc. It means you’re NOT linking with the C++ runtime libs.  To link with the C++ runtime libs, include an empty source file having a file extension of “.cpp”.   For more information, see the IOS Objective-C linking notes

regsvr32 Error Code 80070005

The error code 80070005 usually means that you do not have enough permission to write to the registry. See this Chilkat blog post ( How to Register an ActiveX DLL using regsvr32 ) for help in running regsvr with administrative privileges.

(IOS) Creating a Chilkat Universal Library

The Chilkat IOS library download provides separate static libs for the device and simulator. The universal lib is not included because (1) it is easy to create from the individual libs, and (2) it reduces the size of the download. To create a single IOS Chilkat universal lib, run the following libtool command from the root of the Chilkat directory […]