DLL Creations Forum Rules
Please read over the following rules before posting a topic. Any topic posted in this section that fails to comply with these rules will be deleted.
Posting Guidelines
- Only topics which showcase a DLL (Dynamic Link Library) may be posted here. All other topics of discussion will be removed.
- All topics require a download link to the creation they are showcasing. Any creation which requires a user to contact the creator via e-mail, Personal Messager or other similar means are not allowed.
- Do NOT create topics showcasing Examples, Tutorials or Engines using other people's DLLs/creations. If you have made an example, tutorial or engine using someone else's DLL, you may place it in the DLL's existing showcase topic.
- Porting or converting discussions are NOT allowed. This includes, but is not limited to, porting GM Games, converting GML, or using GameMaker on platforms it does not natively support.
- Creations that alter the behavior of GameMaker directly are NOT allowed. This includes tool bars, embedded windows, memory alteration, etc.
STRICTLY Forbidden Areas of Discusion
- Prank programs (harmless or not)
- Disabling the Start Menu, TaskManager, CTRL+ALT+DELETE, CMD+OPT+ESC, etc.
- Shells (Sub-OS programs)
- File management programs
- Applications that use or access email, chat networks (eg. AIM, MSN, IRC), telephone networks (eg. SMS), or forums
- Removal tools for spyware / viruses / cookies, or pop-up blockers
- Preventing or forcing Log Off, Shut Down, or Restart
- Applications that alter the operating system, system files, or registry settings
- Programs that install software to automatically start for any reason
- Programs that hide themselves when they run
- Key loggers, screen loggers, activity monitors, or any other form of surveillance
- Applications that automatically refresh web pages
See this linked topic for a full list of projects which are not allowed.
FAQ
Q: What if a download link isn't working?
A: Make sure to try the "Right Click > Save As" option, or dragging the link into the browser bar. If that doesn't work, it is a dead link.
Do NOT bump the topic saying "broken link". Instead, try contacting the author privately to inform him. If the link is down for several days, you can use the report button.
Q: What is a DLL?
A: Smarty made a very informative topic about this which can be found here. That should give you plenty of information on the subject.
Q: Can Game Maker make DLLs?
A: No, Game Maker cannot make DLLs, or machine compile anything for that matter. You will need to learn/use an outside programming language. Possible langauges include C/C++, Pascal, ASM, PureBasic, etc.
Q: How do I make a DLL?
A: You will need to learn an outside programming language and use the tools developed for that language.
Q: Can Visual Basic be used to create DLLs?
A: You can try, but in has been found that in most cases, dll's made using VB do not work in Game Maker.
Q: What variable or data types are required to make a compatable GM DLL?[/color]
A: For REAL (number) values, use double. For STRING values, use PCHAR (char* or LPSTR). If you try to return a value which isn't one of these types, GM will usually flag you down with the "Unexpected error occurred".
Q: How come certian WinAPI (or other outside) functions [ ex: ShowWindow() ] do not work properly even though I'm passing GM's window handle?[/color]
A: It has been found that Game Maker applications use two window handles. The window_handle() function returns the handle to the child window (or the one you see). In some cases, however, you need to get the parent window's handle. One way to get this other handle is by using the WinAPI function GetWindow(). Example of it's use in C/C++.
// C/C++
#define export extern "C" __declspec (dllexport)
#include <windows.h>
export double windowGet(double handle) {
return (int) GetWindow((HWND)(int)handle,GW_OWNER);
}And here is an already made GML script for using the above DLL.// GML - Argument already filled in for getting parent handle var dll, def, ret; dll = "NameOfMyDLL.dll"; def = external_define(dll,"windowGet",dll_cdecl,ty_real,1,ty_real); ret = external_call(def,window_handle()); external_free(dll); return ret;
This topic has been left open so that other users can post their "FAQ" about extending GameMaker. When a FAQ is posted, staff will determine if it should be appended to the existing list and the post will be removed.
DO NOT POST QUESTIONS in this topic, as they will NOT be answered. However, any question about the rules/FAQ itself are welcome.











