Thank you all for your responses. To be clear, dfs.cpp does #include <lmdfs.h> And it seems I have goofed slightly in my descrtiption (apologies.) dfs.h has these declarations that seem to corraspond to the linker errors:
133: XS(XS_NT__Lanman_NetDfsRename); 154: XS(XS_NT__Lanman_NetDfsMove);
amd domain.h:
93: XS(XS_NT__Lanman_NetEnumerateTrustedDomains); 111: XS(XS_NT__Lanman_I_NetGetDCList);
And these "XS" functions are defined. It's the functions they call from within that's the problem: IE: (dfs.cpp:315)
XS(XS_NT__Lanman_NetDfsRemove) { [...] LastError(NetDfsRemove(entryPath, server, share)); [...] }
Interestingly, in domain.h, in the comment block directly preceding "XS(XS_NT__Lanman_NetEnumerateTrustedDomains);" it mentioned the following: (reformated slightly for readability.) domain.h:83
// important: if you need to compile this module, please change the // function prototype in lmaccess.h to the following: // // NTSTATUS NET_API_FUNCTION NetEnumerateTrustedDomains( // IN LPWSTR ServerName OPTIONAL, OUT LPWSTR *DomainNames);
This is the best clue I've found so far. Ok, so I opened "C:\Program Files\Microsoft SDK\Include\LMAccess.h" and at line 1378 I see:
NTSTATUS NET_API_FUNCTION NetEnumerateTrustedDomains ( IN LPWSTR ServerName OPTIONAL, OUT LPWSTR *DomainNames );
So to be sure I went and opened "C:\Program Files\Microsoft Visual Studio\6.0\VC98\Include\LMACCESS.H" and at line 1311 I see:
NTSTATUS NetEnumerateTrustedDomains ( IN LPWSTR ServerName OPTIONAL, OUT LPWSTR *DomainNames );
Which appears to be missing the "NET_API_FUNCTION" part. I added "NET_API_FUNCTION" and deleted "perl.10xx.release\domain.obj" and re-ran "vc6 nmake" (vc6 is a batch file that setups the correct environment for vc6) and domain.obj recompiled but I got the same linker errors. Thank for the help so far. The thing I really don't get is that all the unresolved symbols the linker complains about all have leading underscores (ie, _NetDfsRename, _NetDfsMove, _NetEnumerateTrustedDomains, _I_NetGetDCList) but the actual calls in the .cpp files have no underscores (ie, NetDfsRemove, NetDfsMove, NetEnumerateTrustedDomains, I_NetGetDCList), yet other functions like XS(XS_NT__Lanman_NetDfsRename), which calls NetDfsRename, works fine. Any more insight is very much appreciated.

In reply to Re^2: Compiling Win32::Lanman for ActivePerl 5.10 by szr
in thread Compiling Win32::Lanman for ActivePerl 5.10 by szr

Title:
Use:  <p> text here (a paragraph) </p>
and:  <code> code here </code>
to format your post, it's "PerlMonks-approved HTML":



  • Posts are HTML formatted. Put <p> </p> tags around your paragraphs. Put <code> </code> tags around your code and data!
  • Titles consisting of a single word are discouraged, and in most cases are disallowed outright.
  • Read Where should I post X? if you're not absolutely sure you're posting in the right place.
  • Please read these before you post! —
  • Posts may use any of the Perl Monks Approved HTML tags:
    a, abbr, b, big, blockquote, br, caption, center, col, colgroup, dd, del, details, div, dl, dt, em, font, h1, h2, h3, h4, h5, h6, hr, i, ins, li, ol, p, pre, readmore, small, span, spoiler, strike, strong, sub, summary, sup, table, tbody, td, tfoot, th, thead, tr, tt, u, ul, wbr
  • You may need to use entities for some characters, as follows. (Exception: Within code tags, you can put the characters literally.)
            For:     Use:
    & &amp;
    < &lt;
    > &gt;
    [ &#91;
    ] &#93;
  • Link using PerlMonks shortcuts! What shortcuts can I use for linking?
  • See Writeup Formatting Tips and other pages linked from there for more info.