|
|
| version 1.4, 2004/02/03 08:24:40 | version 1.7, 2005/02/09 20:11:35 |
|---|---|
| Line 60 static _ROMEO romeo = {NULL}; | Line 60 static _ROMEO romeo = {NULL}; |
| // 自前で検索する(矢野さん方式) | // 自前で検索する(矢野さん方式) |
| #define PCIBUSDEVFUNC(b, d, f) (((b) << 8) | ((d) << 3) | (f)) | #define PCIBUSDEVFUNC(b, d, f) (((b) << 8) | ((d) << 3) | (f)) |
| #define DEVVEND(v, d) ((v) | ((d) << 16)) | #define DEVVEND(v, d) ((ULONG)((v) | ((d) << 16))) |
| static ULONG searchRomeo(void) { | static ULONG searchRomeo(void) { |
| Line 103 const DLLPROC *dterm; | Line 103 const DLLPROC *dterm; |
| } | } |
| romeo.mod = mod; | romeo.mod = mod; |
| d = dllproc; | d = dllproc; |
| dterm = d + sizeof(dllproc)/sizeof(DLLPROC); | dterm = d + NELEMENTS(dllproc); |
| while(d < dterm) { | while(d < dterm) { |
| proc = (long)GetProcAddress(mod, d->symbol); | proc = (long)GetProcAddress(mod, d->symbol); |
| if (proc == (long)NULL) { | if (proc == (long)NULL) { |
| MessageBox(NULL, "0", "?", MB_OK); | |
| goto jini_err2; | goto jini_err2; |
| } | } |
| *(long *)(((BYTE *)&romeo) + (d->addr)) = proc; | *(long *)(((UINT8 *)&romeo) + (d->addr)) = proc; |
| d++; | d++; |
| } | } |