Given the constraints, I'd probably use a wiped application of glyphosate (Roundup or similar). Wrap each rosebush in newspaper, or drop a cardboard box over it. Apply glyphosate according to label instructions to just the plants you want to kill -- it works best when your weeds are actively growing, so water or wait for enough heat to start growth if you have to. When the glyphosate is dry, remove the protection from the roses.
If you get glyphosate on a plant you want to keep, apply a slurry of soil and water. Remember that glyphosate is applied to green tissues, not to the soil or roots.
After you've gotten the current crop of weeds, use mulch to suppress the growth of more weeds, or vow to hoe weekly.
Remember, read and follow label directions precisely... too strong a concentration, applying at the wrong time of growth, at the wrong temp, or just before a rain will probably result in poor control. Because you're using a wiped application, it's necessary to wear proper protective gear, including gloves.