Windows: Modifying app_faker.c to handle .manifests and private dlls

"David L. Page" <[email protected]> Fri, 25 Apr 2008 15:49:29 -0400
Newsgroups gmane.comp.graphics.chromium.user
Message-ID <[email protected]>
--===============0741291765==
Content-Type: multipart/alternative; 
	boundary="----=_Part_7517_16903546.1209152969621"

------=_Part_7517_16903546.1209152969621
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

I'm not really a developer, but this post should probably go there.

In regards to a previous post, I noted that Windows manifest files were
causing problems on my system for executing the OpenGL demos, specially
atlantis.exe.

I previously posted a kludge to embed the manifests in the exe files, but
this approach would seem to go against the Chromium philosophy of not
requiring mods to an existing OpenGL app.

So, I dug into it a bit more and the problem seems to occur from the fact
that crappfaker.exe copies atlantis.exe (for example) to a temporary
directory and then copies crfaker.dll to that same tmp directory with the
name opengl32.dll. In this manner, atlantis.exe (or whatever app) is fooled
into thinking that crfaker.dll is the OpenGL library.

BUT! The big problem here is that that file atlantis.exe.manifest doesn't
get copied by crappfaker.exe, and thus Windows is unable to load the
msvcr80d.dll.

I am speculating, but I think this particular behavior would also cause
problems for private dlls as well where a private dll is one that is located
in the directory where an app exe is located AND that directory is not in
the load path of Windows. So, a private dll would also not be copied to the
tmp directory and thus would not be linked. A similar issue would seem to
arise with .local files (i.e. app.exe.local). I don't have a good
understanding of these, but I think they also would need to be copied to the
tmp directory.

That's what I've figured out so far. I have a modified version of
app_faker.c working on my system. This mod avoids the need for mt.exe
embedding of manifests into an app exe, i.e. no need to modify an OpenGL
app.

My coding practice is very much a hack job. Is there a developer out there
that might have an interest is cleaning my mess up and including it in the
development of Chromium?

--Dave


-- 
David L. Page, PhD
[email protected]
865.607.8192

------=_Part_7517_16903546.1209152969621
Content-Type: text/html; charset=ISO-8859-1
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

<div>&nbsp;</div>
<div>I&#39;m not really a developer, but this post should probably go there. </div>
<div>&nbsp;</div>
<div>In regards to a previous post, I noted that Windows manifest files were causing problems on my system for executing the OpenGL demos, specially atlantis.exe. </div>
<div>&nbsp;</div>
<div>I previously posted a kludge to embed the manifests in the exe files, but this approach would seem to go against the Chromium philosophy of not requiring mods to an existing OpenGL app.</div>
<div>&nbsp;</div>
<div>So, I dug into it a bit more and the problem seems to occur from the fact that crappfaker.exe copies atlantis.exe (for example) to a temporary directory and then copies <span class="File">crfaker.dll</span> to that same tmp directory with the name opengl32.dll. In this manner, atlantis.exe (or whatever app) is fooled into thinking that crfaker.dll is the OpenGL library.</div>

<div>&nbsp;</div>
<div>BUT! The big problem here is that that file atlantis.exe.manifest doesn&#39;t get copied by crappfaker.exe, and thus Windows is unable to load the msvcr80d.dll.</div>
<div>&nbsp;</div>
<div>I am speculating, but I think this particular behavior would also cause problems for private dlls as well where a private dll is one that is located in the directory where an app exe is located AND that directory is not in the load path of Windows. So, a private dll would also not be copied to the tmp directory and thus would not be linked. A similar issue would seem to arise with .local files (i.e. app.exe.local). I don&#39;t have a good understanding of these, but I think they also would need to be copied to the tmp directory.</div>

<div>&nbsp;</div>
<div>That&#39;s what I&#39;ve figured out so far. I have a modified version of app_faker.c working on my system. This&nbsp;mod avoids the need for mt.exe embedding of manifests into an app exe, i.e. no need to modify an OpenGL app.&nbsp;</div>

<div>&nbsp;</div>
<div>My coding practice is very much a hack job. Is there a developer out there that might have an interest is cleaning my mess up and including it in the development of Chromium?</div>
<div>&nbsp;</div>
<div>--Dave</div>
<div><br clear="all"><br>-- <br>David L. Page, PhD<br><a href="mailto:[email protected]">[email protected]</a><br>865.607.8192<br></div>

------=_Part_7517_16903546.1209152969621--


--===============0741291765==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

-------------------------------------------------------------------------
This SF.net email is sponsored by the 2008 JavaOne(SM) Conference 
Don't miss this year's exciting event. There's still time to save $100. 
Use priority code J8TL2D2. 
http://ad.doubleclick.net/clk;198757673;13503038;p?http://java.sun.com/javaone
--===============0741291765==
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Chromium-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/chromium-users

--===============0741291765==--