<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
		<id>https://uodemo.uo98.org/index.php?action=history&amp;feed=atom&amp;title=UoDemoDLL</id>
		<title>UoDemoDLL - Revision history</title>
		<link rel="self" type="application/atom+xml" href="https://uodemo.uo98.org/index.php?action=history&amp;feed=atom&amp;title=UoDemoDLL"/>
		<link rel="alternate" type="text/html" href="https://uodemo.uo98.org/index.php?title=UoDemoDLL&amp;action=history"/>
		<updated>2026-04-29T01:56:49Z</updated>
		<subtitle>Revision history for this page on the wiki</subtitle>
		<generator>MediaWiki 1.28.0-alpha</generator>

	<entry>
		<id>https://uodemo.uo98.org/index.php?title=UoDemoDLL&amp;diff=403&amp;oldid=prev</id>
		<title>Derrick: http://www.joinuo.com/forums/viewtopic.php?f=32&amp;t=608</title>
		<link rel="alternate" type="text/html" href="https://uodemo.uo98.org/index.php?title=UoDemoDLL&amp;diff=403&amp;oldid=prev"/>
				<updated>2011-12-10T20:01:51Z</updated>
		
		<summary type="html">&lt;p&gt;http://www.joinuo.com/forums/viewtopic.php?f=32&amp;amp;t=608&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;UoDemo+ Publish 15 introduced the option to attach a DLL to the demo.&lt;br /&gt;
&lt;br /&gt;
You will need:&lt;br /&gt;
* Borland C++ 5.5 (Free Compiler) http://edn.embarcadero.com/article/20633&lt;br /&gt;
* Turbo Assember 5.X http://www.phatcode.net/downloads.php?id=280&lt;br /&gt;
&lt;br /&gt;
Both of them are good old command-line tools, so don't expect something fancy .&lt;br /&gt;
&lt;br /&gt;
The idea of the uodemo.dll is:&lt;br /&gt;
* You set the environment variable UODEMODLL to a DLL made using this API&lt;br /&gt;
* You start uodemo+.exe (Publish 15 or later)&lt;br /&gt;
* uodemo+.exe will load your DLL&lt;br /&gt;
* uodemo.dll is now in the same address space as the EXE&lt;br /&gt;
* uodemo.dll makes patches inside uodemo+.exe in order to redirect (intercept) calls out of the EXE into the DLL&lt;br /&gt;
* Because we own/write the DLL and it's written in C it becomes easy to recode certain functions/behaviours&lt;br /&gt;
&lt;br /&gt;
Even though this all sounds great, it is a lot of work because to intercept and call functions inside the EXE, you need a good knowledge of the functions and structure-layouts inside the EXE. That's what the API is for, it exposes interesting functions in a more readable fashion, so you don't need to think about the assembler and internals.&lt;br /&gt;
&lt;br /&gt;
This screenshot shows how to configure the API for the default test project. There are 3 batch files you can use : cfg, b and r. cfg to configure the environment, b to build to the project, r to run the project. Also refer to this screenshot:&lt;br /&gt;
&lt;br /&gt;
[[File:UoDemoDLL cfg.png]]&lt;br /&gt;
&lt;br /&gt;
You should edit cfg.cmd to ensure your build environment is correct with your computer.&lt;br /&gt;
&lt;br /&gt;
Use b and then r to test, if you successfull you get this :&lt;br /&gt;
&lt;br /&gt;
[[File:B &amp;amp; r = cheat console.png]]&lt;br /&gt;
&lt;br /&gt;
Download the project here: http://download.joinuo.com/UoDemoDLL/&lt;/div&gt;</summary>
		<author><name>Derrick</name></author>	</entry>

	</feed>