I'm relatively new to VB.net and am having some fun with interfacing DLLs.
This is the function I'd like to use in my project:
Code:
typedef int (*hashcash_callback)(int percent, int largest, int target,
double count, double expected,
void* user);
HCEXPORT
int hashcash_mint( time_t now_time, int time_width, const char* resource,
unsigned bits, long anon_period, char** stamp,
long* anon_random, double* tries_taken, char* ext,
int compress, hashcash_callback cb, void* user_arg );
I've managed to get simpler ones to work - eg:
Code:
Declare Function hashcash_estimate_time Lib "hashcash.dll" (ByVal b As Int32) As Double
But would appreciate some advice on exactly how to use hashcash_mint in my project... Anyone have any experience?
edit:
Think it's all sorted. Apparently ints aren't 16 bits and longs aren't 32 any more!? Think I'd better get with the times...
If anyone has similar problems, vb.net needs everything passing as 'ByVal' (even the strings, where what it actually passes is the reference to the start of the string). Curiously, and usefully for the 'char** stamp', if you tell it to pass a string 'ByRef' it will pass a reference to a reference to the start of the string. Bingo.