Creating a DLL with a ActiveX interface.

Taylor Hillegeist via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Sep 16 09:08:45 PDT 2015


On Monday, 14 September 2015 at 16:59:20 UTC, Adam D. Ruppe wrote:
> On Monday, 14 September 2015 at 15:44:36 UTC, Taylor Hillegeist 
> wrote:
>> So, Actually I am using NI LabVIEW to interact with my DLL. I 
>> imagine even getting hold of of that would troublesome or 
>> expensive.
>
> Ah, all right. Here's a SO thing (followed up by email then

Fortunately I am working with Win7, And the below function seems 
to work beautifully.

export extern (Windows) void SayHello(Variant *Input_Variant)
{
	string A = "HELLO WORLD!";
     Input_Variant.CA_VariantSetCString(A.ptr);
}

My goal was to store variants in an associative array 
Variant[string] and use this as a portable interpreter returning 
the resulting Variant.

but that runs into some memory questions that I am not as savvy 
with.

1. Memory:
I need to manage memory from the dll. I can give the caller a 
pointer to manage, but I don't think that is visible from gc. 
There should be different associtive arrays for different objects 
in the caller. How do I manage this?

2. Threads:
I would like this to be as parallel as possible one objects call 
to its data should not hinder anothers.

I have seen on the Memory managment page 
http://wiki.dlang.org/Win32_DLLs_in_D  but I would like to know 
more.





More information about the Digitalmars-d-learn mailing list