Monthly Archives: August 2008

Ευρώ Ολογράφως – VB Use

Είχα ξεκινήσει πριν από λίγο καιρό να μεταφράζω κώδικα σε C# με σκοπό να γίνει C++ για μετατροπή ενός ποσού σε Ευρώ Ολογράφως. Αφού έφτασε σε ένα σημείο που δούλευε ικανοποιητικά μαζεύτηκε αυτό και μερικές άλλες λειτουργίες στο DVAUtils.dll.  Αυτό το dll εξάγει μερικές functions που κάνουν αυτή τη μετατροπή του ποσού σε λεκτικό, αλλά και ενός COM object που κάνει το ίδιο πράγμα. Υπάρχουν και μερικές ακόμα functions και επιπλέον com objects αλλά είναι άσχετα με το συγκεκριμένο. Continue reading

VB Declare Function Part 2

Το πρόβλημα με το να παίρνεις δεδομένα των οποίων το μέγεθος δεν το γνωρίζεις εξ’ αρχής μετατίθεται στο ποιός θα κάνει το allocation της μνήμης. Η VB ή το DLL; Αν το κάνει η VB θα μπορεί να το ελευθερώσει το DLL (γιατί κάποιος πρέπει να το ελευθερώσει).

Η πιο απλή και σίγουρη λύση είναι αυτός που δεσμεύει τη μνήμη, αυτός και να την ελευθερώνει. Αυτή η τακτική όμως δεν μπορεί να εφαρμοστεί – εύκολα – σε όλες τις περιπτώσεις.

Το άλλο πρόβλημα με τα strings είναι ότι κάποιοι μπορεί να χρησιμοποιούν ansi strings και άλλοι unicode. Στα windows dlls αυτά ξεχωρίζουν από την ονομασία της function που εξάγει το dll. Συνήθως είναι της μορφής functionA (για την ansi version) ή functionW (για την unicode version). Στη δεύτερη περίπτωση μπορεί να χρησιμοποιηθεί το string από την vb όπως είναι, ενώ στην πρώτη περίπτωση πρέπει να γίνει μετατροπή από ansi σε unicode (ή το αντίστοφο). Continue reading