Using 6.5.x library based program on a notes/domino 6.0.x system

Hello everyone

I am cutting my teeth on Notes API development. I have a question which I think has an obvious answer but I thought I’d ask.

I am writing a program using the notes lib from the 6.5.x sdk. Can my API run on a 6.0.x system? Are 6.5 and 6.0 radically different? The functions I am using are actually available in both versions.

I’ve tried it out and it “seems” to work but don’t know if I am setting myself up for a problem later on :slight_smile:

Thank You,

Theo

Subject: The real question is “Why?”

Why would you use the SDK from 6.5 if the functions are available in both? Instead, use the SDK from 6.0 and avoid the chance of a problem. The SDK is upwardly compatible, but is not guaranteed to be downwardly compatible, so you should always use the libraries at least from the lowest version you plan to support.

Subject: you are right

Ben you are right- it’s more of a theoretical question. I started out using 6.5.x (i.e., latest and greatest) and ended up testing on a 6.0.x server. It “worked” (I didn’t notice any problems), and then used the correct 6.0 libs.

It just sparked a question and wondered. The only scenario I could think of is that there is something fixed in 6.5.x over 6.0.x. An api function that say memory leaked but was fixed upstream.

So this avoids forcing the user to upgrade to a 6.5 server to be compliant.

Any, just a thought.

Theo

Subject: it’s dynamic linking

it wouldn’t fix any bugs this way. notes.lib does contain nothing but entry-point declarations.

Markus Seitz

markus.seitz@icodex.com

Subject: There is another reason

Basically, there may be new entry points into the 6.5x DLL. If you access those, you go “BOOM!”. You think you won’t because you only use functions that are in each, but imagine this scenario:

6.0.x API

SpiffyCoolFunction is a macro that calls SpiffyCoolInternal function

6.5.x API

SpiffyCoolFunction is redefined to call SpiffyCoolInternalWithSameTimeAwarenessCleanup function

Now, if you run the SpiffyCoolFunction compiled with 6.0.x API, it runs SpiffyCoolInternal even on 6.5.x, because SpiffyCoolInternal is still defined for backward compatibility, but if you run the SpiffyCoolFunction compiled with 6.5.x API on 6.0.x, you go “BOOM!” because the SpiffyCoolInternalWithSameTimeAwarenessCleanup function entry point does not exist.

This may be a tortured example, but I have seen it happen between versions. You might run without trouble, but you are asking for trouble in the long run. Anyway, just my two cents.

Subject: two cents worth a million

Yes you are exactly right Ben…

To bad, I like the Microsoft model, just upgrade to the latest and greatest version of Windows and “to heck” with backward compatibility!! :slight_smile: