Re: Poor man's mscoree.dll - working
Maciek <[email protected]>
| Newsgroups | gmane.comp.gnu.dotgnu.developer |
|---|---|
| Message-ID | <[email protected]> |
I've made some improvements including mingw build script, replacing
current process with 'clrwrap app.exe' (where app.exe is the exe that
called this dll) and some minor fixes.
http://mil-sim.net/download/pnet/coremul.zip
Maciek wrote:
> OK, here's the whole thing (mscoree.dll, source and MSVC7.1 project):
> http://mil-sim.net/download/pnet/coremul.zip
>
> If you have a system without MS.NET, copy the DLL to C:\Program
> Files\PNET\bin (it should be in PATH).
>
> Maciek wrote:
>
>> Hello,
>>
>> I started playing with coremul last night and after figuring out how
>> to export the DLL function properly i came up with a _very simple_
>> solution to mscoree.dll problem. Here's basically how it works:
>>
>> pnet/coremul/shim.c:
>>
>> __declspec(dllexport) __int32 _CorExeMain(void)
>> {
>> /* Get the full pathname of the application */
>> #ifdef _COR_REAL_WIN32
>> TCHAR path[1024];
>> GetModuleFileName(0, path, 1023);
>>
>> STARTUPINFO si;
>> PROCESS_INFORMATION pi;
>>
>> GetStartupInfo(&si);
>>
>> char cmd[1100];
>>
>> sprintf(cmd, "%s \"%s\"", "ilrun", path);
>>
>> /* Execute 'ilrun "path/app.exe"' */
>> CreateProcess(
>> NULL,
>> cmd,
>> NULL,
>> NULL,
>> FALSE,
>> 0,
>> NULL,
>> NULL,
>> &si,
>> &pi);
>>
>> exit(0);
>> #endif
>>
>> return 0;
>> }
>>
>> ---
>>
>> I've compiled the DLL (on mingw) this way:
>>
>> cd coremul/
>> gcc -c cocreate.cpp
>> gcc -c guid.cpp
>> gcc -c shim.c
>> dllwrap --output-lib=libmscoreedll.a --dllname=mscoree.dll
>> --driver-name=gcc cocreate.o guid.o shim.o
>>
>> ---
>>
>> As you can see, it's a really half-assed approach (EXEs only),
>> completely disregarding the way the 'shim' should work in real life.
>> Obviously, this approach only works on Windows, I don't even know if
>> mscoree.dll would be useful on other platforms. But it works for
>> simple testing, you no longer have to type 'ilrun app.exe' on Windows
>> to execute .NET applications.
>>
>> If you're interested in having this until I come up with a better
>> solution, I can submit a patch.
>>
>> Please let me know what you think about it.
>>
>> Regards,
>>
>> Maciek
>>
>> _______________________________________________
>> Developers mailing list
>> [email protected]
>> http://dotgnu.org/mailman/listinfo/developers
>>
>>
>
> _______________________________________________
> Developers mailing list
> [email protected]
> http://dotgnu.org/mailman/listinfo/developers
>
>